/* ═══════════════════════════════════════════════════════════════
   FLEETCORE INTELLIGENCE — Design System "Midnight Fleet"
   ฟอนต์: LINE Seed Sans TH · พื้นหลัง dark navy + การ์ดขาว + ส้ม
   โครง: Top header · KPI row · Bottom floating nav
   ═══════════════════════════════════════════════════════════════ */
@import url('https://cdn.jsdelivr.net/gh/lazywasabi/thai-web-fonts@7/fonts/LINESeedSansTH/LINESeedSansTH.css');

:root {
  /* ── พื้นหลังระบบ (สว่าง คลีน มินิมอล ตามแบบ) ── */
  --bg: #F4F6FA;              /* พื้นหลังเนื้อหา เทาอ่อนมาก */
  --bg-deep: #EDF0F6;         /* เทาอ่อนเข้มขึ้นอีกขั้น */
  --header: #151B2A;          /* แถบหัวเว็บ */
  --header-2: #1C2334;        /* ปุ่มกลมบนหัวเว็บ */
  --navbar: #12182A;          /* แถบเมนูลอยด้านล่าง */
  --dark-line: #232B3D;       /* เส้นแบ่งบนพื้นเข้ม */
  --on-dark: #F1F5F9;         /* ตัวอักษรบนพื้นเข้ม */
  --on-dark-soft: #94A3B8;    /* ตัวอักษรรองบนพื้นเข้ม */

  /* ── การ์ด (พื้นขาว) ── */
  --surface: #FFFFFF;
  --surface-2: #F8FAFC;
  --ink: #1E293B;             /* ตัวอักษรหลักบนการ์ด */
  --ink-2: #334155;
  --muted: #7A879C;           /* ตัวอักษรรองบนการ์ด */
  --line: #EDF1F7;
  --line-soft: #F4F7FB;

  /* ── ส้มแบรนด์ ── */
  --amber: #FB923C;
  --ember: #F97316;
  --ember-deep: #EA580C;
  --grad-ember: linear-gradient(135deg, #FB923C, #EA580C);
  --ember-bg: #FFF1E6;
  --ember-bg-2: #FFF8F1;

  /* ── สีสถานะ ── */
  --ok: #16A34A;    --ok-bg: #E7F8ED;
  --bad: #DC2626;   --bad-bg: #FDECEC;
  --warn: #D97706;  --warn-bg: #FEF3DC;
  --info: #2563EB;  --info-bg: #E8F0FE;
  --violet: #8B5CF6; --violet-bg: #F1EBFE;

  /* ── ระบบอัจฉริยะ ── */
  --smart-bg: linear-gradient(150deg, #FFF8F1, #FFF1E6);
  --smart-border: #FBCFA4;

  /* ── มิติ ── */
  --radius: 16px;
  --radius-sm: 10px;
  --radius-lg: 20px;
  --shadow: 0 1px 3px rgba(15,23,42,.06), 0 6px 18px rgba(15,23,42,.05);
  --shadow-lg: 0 12px 34px rgba(8,12,22,.30);
  --shadow-dark: 0 10px 34px rgba(0,0,0,.42);
  --sidebar-w: 250px;
  --navbar-h: 92px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  font-family:'LINE Seed Sans TH', sans-serif;
  background:var(--bg); color:var(--ink);
  font-size:15px; line-height:1.65; min-height:100vh;
  /* ทำให้ตัวอักษรเรนเดอร์เนียนขึ้น */
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-synthesis:none; /* กัน browser สังเคราะห์ weight ปลอม (ตัวหนาแตก) */
}
button, input, select, textarea { font-synthesis:none; }

/* ═══════════ LAYOUT ═══════════ */
.fc-app { display:flex; min-height:100vh; }
.fc-main { flex:1; min-width:0; padding:26px 30px 60px; }

/* ── Sidebar ── */
.fc-sidebar {
  width:var(--sidebar-w); background:var(--ink); flex-shrink:0;
  padding:22px 14px; display:flex; flex-direction:column; gap:4px;
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.fc-logo { display:flex; align-items:center; gap:11px; padding:4px 10px 20px; }
.fc-logo-mark {
  width:40px; height:40px; border-radius:12px; background:var(--grad-ember);
  display:flex; align-items:center; justify-content:center; font-size:20px;
  box-shadow:0 4px 14px rgba(234,88,12,.4);
}
.fc-logo-txt { font-weight:800; font-size:16px; line-height:1.1; color:#FDF6EC; letter-spacing:.4px; }
.fc-logo-txt small { display:block; font-size:9px; color:var(--amber); font-weight:700; letter-spacing:2.8px; }
.fc-nav { display:flex; flex-direction:column; gap:3px; }
.fc-nav a {
  display:flex; align-items:center; gap:11px; padding:10.5px 13px;
  border-radius:var(--radius-sm); color:#A89A88; font-size:14.5px;
  text-decoration:none; transition:.15s; font-weight:400;
}
.fc-nav a:hover { background:#332B22; color:#F5EDE2; }
.fc-nav a.on {
  background:linear-gradient(90deg, rgba(245,158,11,.22), rgba(234,88,12,.10));
  color:var(--amber); font-weight:700;
}
.fc-nav .sec { font-size:11px; color:#6B5F50; letter-spacing:1.6px; font-weight:700; padding:16px 13px 5px; }

/* ── Topbar ── */
.fc-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; flex-wrap:wrap; gap:12px; }
.fc-top h1 { font-size:21px; font-weight:800; }
.fc-top .sub { color:var(--muted); font-size:13px; margin-top:3px; }
.fc-user {
  display:flex; align-items:center; gap:10px; background:var(--surface);
  border:1px solid var(--line); padding:7px 15px 7px 8px; border-radius:999px;
  font-size:13px; box-shadow:var(--shadow); font-weight:700;
}
.fc-user-button {
  font-family:inherit;
  color:var(--ink);
  cursor:pointer;
  text-align:left;
}
.fc-user-button:hover {
  border-color:#F2D6B5;
  background:#FFFDF8;
}
.fc-user .av {
  width:31px; height:31px; border-radius:50%; background:var(--grad-ember);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px;
  overflow:hidden;
}
.fc-user .av img,
.fc-profile-avatar-preview img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.fc-settings-hero {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.fc-settings-hero h2 {
  margin:0 0 4px;
  font-size:22px;
  font-weight:900;
}
.fc-settings-hero p {
  margin:0;
  color:var(--muted);
}
.fc-settings-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-bottom:14px;
}
.fc-admin-card {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#FFFDF8;
  margin-bottom:14px;
}
.fc-admin-card .av {
  width:58px;
  height:58px;
  border-radius:18px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:var(--grad-ember);
  color:#fff;
  font-size:24px;
  font-weight:900;
}
.fc-admin-card .av img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.fc-admin-card b,
.fc-admin-card small {
  display:block;
}
.fc-admin-card small {
  color:var(--muted);
  margin-top:3px;
}
.fc-setting-list {
  display:grid;
  gap:9px;
}
.fc-setting-list div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--line-soft);
}
.fc-setting-list div:last-child {
  border-bottom:0;
}
.fc-setting-list span {
  color:var(--muted);
}
.fc-policy-box {
  padding:16px;
  border:1px solid #F0C995;
  border-radius:18px;
  background:#FFF6E8;
}
.fc-policy-box b {
  display:block;
  margin-bottom:6px;
  font-weight:900;
}
.fc-policy-box p {
  margin:0;
  color:#5F4B32;
  line-height:1.65;
}
.fc-permission-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}
.fc-permission-grid article {
  display:grid;
  grid-template-columns:40px 1fr;
  gap:10px;
  min-height:104px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#FFFDF8;
}
.fc-permission-grid article > span {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#FFF0DC;
}
.fc-permission-grid b,
.fc-permission-grid small {
  display:block;
}
.fc-permission-grid small {
  margin-top:4px;
  color:var(--muted);
  line-height:1.45;
}
.fc-permission-grid em {
  grid-column:1 / -1;
  width:max-content;
  padding:4px 9px;
  border-radius:999px;
  background:var(--ok-bg);
  color:var(--ok);
  font-style:normal;
  font-size:11px;
  font-weight:900;
}

/* ═══════════ CARDS ═══════════ */
.fc-card { background:var(--surface); border-radius:var(--radius); padding:20px 22px; box-shadow:var(--shadow); }
.fc-card h3 { font-size:14.5px; font-weight:700; margin-bottom:16px; display:flex; align-items:center; gap:9px; }

/* ── KPI ── */
.fc-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:20px; }
.fc-kpi {
  background:var(--surface); border-radius:var(--radius); padding:18px 20px;
  box-shadow:var(--shadow); border-bottom:3px solid var(--ac, var(--ember));
}
.fc-kpi .lb { color:var(--muted); font-size:12.5px; margin-bottom:7px; display:flex; align-items:center; gap:7px; }
.fc-kpi .vl { font-size:25px; font-weight:800; }
.fc-kpi .vl small { font-size:13px; color:var(--muted); font-weight:400; }
.fc-kpi .ch { font-size:12px; margin-top:7px; display:inline-block; padding:2.5px 10px; border-radius:999px; font-weight:700; }

/* ── ระบบอัจฉริยะ card ── */
.fc-smart { background:var(--smart-bg); border:1.5px solid var(--smart-border); border-radius:var(--radius); padding:20px 22px; }
.fc-smart h3 { font-size:14.5px; font-weight:800; margin-bottom:10px; display:flex; align-items:center; gap:9px; color:var(--ink); }
.fc-smart-item {
  display:flex; gap:11px; padding:11px 0; border-bottom:1px solid #F2DFC2;
  font-size:13.5px; line-height:1.55; color:#4A3E30;
}
.fc-smart-item:last-child { border-bottom:0; }
.fc-smart-item .ic {
  flex-shrink:0; width:29px; height:29px; border-radius:9px;
  display:flex; align-items:center; justify-content:center; font-size:14px; background:#FBE3BC;
}

/* ═══════════ BUTTONS ═══════════ */
.btn {
  font-family:inherit; font-size:14.5px; font-weight:700; cursor:pointer;
  padding:10px 20px; border-radius:var(--radius-sm); border:none;
  display:inline-flex; align-items:center; gap:8px; transition:.18s; text-decoration:none;
}
.btn-primary { background:var(--grad-ember); color:#fff; box-shadow:0 3px 12px rgba(234,88,12,.32); }
.btn-primary:hover { transform:translateY(-1px); box-shadow:0 6px 18px rgba(234,88,12,.42); }
.btn-secondary { background:var(--surface); color:var(--ink-2); border:1.5px solid var(--line); }
.btn-secondary:hover { border-color:var(--muted); }
.btn-dark { background:var(--ink); color:#F5EDE2; }
.btn-dark:hover { background:var(--ink-2); }
.btn-danger { background:var(--bad); color:#fff; }
.btn-danger:hover { background:#B91C1C; }
.btn-ghost { background:transparent; color:var(--ember-deep); }
.btn-ghost:hover { background:var(--ember-bg); }
.btn-sm { padding:6.5px 14px; font-size:13px; }
.btn:disabled { opacity:.45; cursor:not-allowed; transform:none !important; }

/* ═══════════ FORMS ═══════════ */
.fc-field { margin-bottom:16px; }
.fc-field label { display:block; font-size:13px; font-weight:700; margin-bottom:6px; color:var(--ink-2); }
.fc-field label .req { color:var(--bad); }
.fc-input, .fc-select, .fc-textarea {
  width:100%; max-width:35ch; /* กติกา: ช่องกรอกกว้างสุด 35 ตัวอักษร */
  font-family:inherit; font-size:14.5px; color:var(--ink);
  background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-sm);
  padding:10px 14px; transition:.15s; outline:none;
}
/* ขนาดช่องตามเนื้อหา — เลือกใช้ให้พอดีข้อมูล */
.fc-w-xs { max-width:10ch; }   /* เลขสั้น เช่น จำนวน, ปี */
.fc-w-sm { max-width:18ch; }   /* เลขไมล์, เบอร์โทร, ราคา */
.fc-w-md { max-width:26ch; }   /* ทะเบียนรถ, รหัส, วันที่ */
.fc-w-full { max-width:100%; } /* ที่อยู่, หมายเหตุ — ยาวได้ */
.fc-login-card .fc-input { max-width:100%; }
.fc-input:focus, .fc-select:focus, .fc-textarea:focus {
  border-color:var(--amber); box-shadow:0 0 0 3px rgba(245,158,11,.18);
}
.fc-input::placeholder { color:#B9AC99; }
.fc-hint { font-size:12px; color:var(--muted); margin-top:5px; }
.fc-error-msg { font-size:12px; color:var(--bad); margin-top:5px; font-weight:700; }
.fc-input.error { border-color:var(--bad); }
.fc-check { display:flex; align-items:center; gap:9px; font-size:14.5px; cursor:pointer; }
.fc-check input { width:17px; height:17px; accent-color:var(--ember); }

/* ═══════════ TABLE — หัวตารางตรึง + คลิกจัดเรียง ═══════════ */
.fc-table-wrap { overflow:auto; max-height:440px; } /* หัวตารางตรึงเมื่อเลื่อน */
.fc-table { width:100%; border-collapse:separate; border-spacing:0; font-size:13.5px; }
.fc-table th {
  text-align:left; color:var(--muted); font-weight:700; font-size:12px;
  padding:10px 12px; border-bottom:1.5px solid var(--line); letter-spacing:.4px; white-space:nowrap;
  position:sticky; top:0; background:var(--surface); z-index:2; /* ตรึงหัว ห้ามขยับ */
}
.fc-table th[data-sort] { cursor:pointer; user-select:none; }
.fc-table th[data-sort]:hover { color:var(--ember-deep); }
.fc-table th .arr { font-size:10px; margin-left:5px; color:var(--ember); }
.fc-table td.row-no { color:var(--muted); font-variant-numeric:tabular-nums; }
.fc-table td { padding:11.5px 12px; border-bottom:1px solid var(--line-soft); color:#4A3E30; }
.fc-table tr:hover td { background:#FCF9F4; }
.fc-table .num { text-align:right; font-variant-numeric:tabular-nums; }

/* ═══════════ สถานะ — ตัวอักษรสี ไม่มีพื้นหลัง ═══════════ */
.pill { font-size:12.5px; font-weight:700; display:inline-block; white-space:nowrap; }
.pill-ok { color:var(--ok); }
.pill-bad { color:var(--bad); }
.pill-warn { color:var(--warn); }
.pill-info { color:var(--info); }
.pill-ember { color:var(--ember-deep); }
.pill-dark { color:var(--ink-2); }

/* ═══════════ ALERTS ═══════════ */
.fc-alert {
  display:flex; gap:11px; align-items:flex-start; padding:13px 16px;
  border-radius:var(--radius-sm); font-size:14px; margin-bottom:14px; border:1.5px solid;
}
.fc-alert b { font-weight:800; }
.fc-alert-ok { background:var(--ok-bg); border-color:#BBE3C5; color:var(--ok); }
.fc-alert-bad { background:var(--bad-bg); border-color:#F5C6BE; color:var(--bad); }
.fc-alert-warn { background:var(--warn-bg); border-color:#EBD9A0; color:var(--warn); }
.fc-alert-info { background:var(--info-bg); border-color:#BBDDF0; color:var(--info); }

/* ═══════════ MODAL / POPUP ═══════════ */
.fc-overlay {
  position:fixed; inset:0; background:rgba(36,30,24,.55); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; z-index:1000; padding:20px;
}
.fc-modal {
  background:var(--surface); border-radius:20px; box-shadow:var(--shadow-lg);
  width:100%; max-width:480px; max-height:90vh; overflow-y:auto; animation:fcPop .22s ease;
}
@keyframes fcPop { from { transform:scale(.94); opacity:0; } to { transform:scale(1); opacity:1; } }
.fc-modal-head {
  padding:18px 22px 14px; border-bottom:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:center;
}
.fc-modal-head h3 { font-size:15.5px; font-weight:800; display:flex; align-items:center; gap:9px; }
.fc-modal-x { background:none; border:none; font-size:17px; cursor:pointer; color:var(--muted); padding:4px 8px; border-radius:8px; }
.fc-modal-x:hover { background:var(--line-soft); color:var(--ink); }
.fc-modal-body { padding:20px 22px; }
.fc-modal-foot { padding:14px 22px 20px; display:flex; justify-content:flex-end; gap:10px; }
.fc-logout {
  color:#B42318;
}
.fc-logout:hover {
  background:#FFF1EF;
  border-color:#F5C6BE;
}

.fc-profile-overlay {
  position:fixed;
  inset:0;
  z-index:1200;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(36,30,24,.55);
  backdrop-filter:blur(3px);
}
.fc-profile-overlay[hidden] {
  display:none;
}
.fc-profile-modal {
  width:min(980px, 100%);
  max-height:92vh;
  overflow:auto;
  background:var(--surface);
  border-radius:22px;
  box-shadow:var(--shadow-lg);
}
.fc-profile-modal.must-save {
  animation:fcModalStay .18s ease;
}
@keyframes fcModalStay {
  0%, 100% { transform:translateX(0); }
  35% { transform:translateX(-6px); }
  70% { transform:translateX(6px); }
}
.fc-profile-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding:18px 22px;
  border-bottom:1px solid var(--line);
}
.fc-profile-head h3 {
  margin:0;
  font-size:18px;
  font-weight:900;
}
.fc-profile-head p,
.fc-signature-box p {
  margin:2px 0 0;
  color:var(--muted);
  font-size:12.5px;
}
.fc-profile-form {
  padding:18px 22px 0;
}
.fc-profile-grid {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:18px;
}
.fc-profile-grid section,
.fc-signature-box {
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#FFFDF8;
}
.fc-profile-grid h4,
.fc-signature-box h4 {
  margin:0 0 12px;
  font-size:14px;
  font-weight:900;
}
.fc-profile-avatar-preview {
  width:92px;
  height:92px;
  border-radius:28px;
  display:grid;
  place-items:center;
  margin:0 0 14px;
  overflow:hidden;
  background:var(--grad-ember);
  color:#fff;
  font-size:34px;
  font-weight:900;
  box-shadow:0 8px 24px rgba(234,88,12,.22);
}
.fc-signature-box {
  margin-top:18px;
}
.fc-signature-link {
  display:inline-flex;
  margin:8px 0 12px;
  color:var(--ember-deep);
  font-size:13px;
  font-weight:800;
  text-decoration:none;
}
.fc-signature-pad {
  width:100%;
  height:180px;
  display:block;
  border:1.5px dashed #E8D5BE;
  border-radius:16px;
  background:#fff;
  touch-action:none;
  cursor:crosshair;
}

/* ═══════════ TABS ═══════════ */
.fc-tabs { display:flex; gap:6px; border-bottom:1.5px solid var(--line); margin-bottom:18px; flex-wrap:wrap; }
.fc-tabs button {
  font-family:inherit; font-size:14.5px; font-weight:700; background:none; border:none;
  padding:10px 16px; cursor:pointer; color:var(--muted); border-bottom:2.5px solid transparent;
  margin-bottom:-1.5px; transition:.15s;
}
.fc-tabs button:hover { color:var(--ink-2); }
.fc-tabs button.on { color:var(--ember-deep); border-bottom-color:var(--ember); }

/* ═══════════ MISC ═══════════ */
.fc-grid2 { display:grid; grid-template-columns:1.7fr 1fr; gap:16px; margin-bottom:20px; }
.fc-grid-eq { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
.fc-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.fc-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; align-items:end; margin-bottom:18px; }
.fc-form-grid .fc-field { margin-bottom:0; }
.fc-form-grid .fc-input, .fc-form-grid .fc-select { max-width:100%; }
.fc-form-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
/* ค้นหา = ดรอปดาวเลือกขอบเขต + ช่องพิมพ์ (ใช้คู่กันเสมอ) */
.fc-search-group { display:flex; flex:1; max-width:480px; }
.fc-search-group .fc-select {
  width:auto; max-width:160px; flex-shrink:0;
  border-radius:var(--radius-sm) 0 0 var(--radius-sm); border-right:none;
  background:#FCF9F4; font-weight:700; font-size:13.5px;
}
.fc-search { position:relative; flex:1; }
.fc-search .fc-input { padding-left:38px; max-width:100%; }
.fc-search-group .fc-search .fc-input { border-radius:0 var(--radius-sm) var(--radius-sm) 0; }
.fc-search .ic { position:absolute; left:13px; top:50%; transform:translateY(-50%); font-size:14px; }
.fc-empty { text-align:center; padding:46px 20px; color:var(--muted); }
.fc-empty .big { font-size:42px; margin-bottom:10px; }
.fc-page { display:flex; gap:6px; justify-content:flex-end; margin-top:16px; }
.fc-page button {
  font-family:inherit; min-width:34px; height:34px; border-radius:9px; border:1.5px solid var(--line);
  background:var(--surface); font-size:13px; font-weight:700; color:var(--ink-2); cursor:pointer;
}
.fc-page button.on { background:var(--grad-ember); border-color:transparent; color:#fff; }

/* ═══════════ แผนที่ติดตามรถ (Leaflet + OpenStreetMap) ═══════════ */
.fc-map { height:400px; border-radius:12px; z-index:1; background:#EFE9DF; }
.fc-truck-pin { font-size:26px; line-height:1; filter:drop-shadow(0 3px 4px rgba(36,30,24,.35)); }
.fc-map-legend { display:flex; gap:18px; flex-wrap:wrap; margin-top:12px; font-size:12.5px; color:var(--muted); }
.fc-map-legend b { color:var(--ink-2); }

/* ═══════════ Dispatch workflow ═══════════ */
.fc-flow { display:grid; gap:10px; }
.fc-flow div {
  display:grid; grid-template-columns:34px 1fr; gap:10px; align-items:center;
  padding:10px 0; border-bottom:1px solid #F2DFC2;
}
.fc-flow div:last-child { border-bottom:0; }
.fc-flow b {
  width:30px; height:30px; border-radius:10px; background:var(--grad-ember);
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800;
}
.fc-flow span { color:#4A3E30; font-size:13.5px; line-height:1.5; }

/* ═══════════ LOGIN ═══════════ */
.fc-login {
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;
  background:
    radial-gradient(900px 500px at 85% -10%, rgba(245,158,11,.16), transparent 60%),
    radial-gradient(700px 500px at -10% 110%, rgba(234,88,12,.12), transparent 55%),
    var(--bg);
}
.fc-login-card {
  background:var(--surface); border-radius:24px; box-shadow:var(--shadow-lg);
  width:100%; max-width:400px; padding:38px 34px;
}
.fc-login-logo { text-align:center; margin-bottom:26px; }
.fc-login-logo .mark {
  width:64px; height:64px; border-radius:19px; background:var(--grad-ember);
  display:inline-flex; align-items:center; justify-content:center; font-size:32px;
  box-shadow:0 8px 24px rgba(234,88,12,.38); margin-bottom:14px;
}
.fc-login-logo h1 { font-size:21px; font-weight:800; letter-spacing:.4px; }
.fc-login-logo h1 span { color:var(--ember); }
.fc-login-logo p { font-size:12.5px; color:var(--muted); margin-top:4px; }
.fc-login-shell {
  width:min(1120px, 100%);
  display:grid;
  grid-template-columns:1.15fr 420px;
  gap:34px;
  align-items:center;
}
.fc-login-hero {
  color:var(--ink);
  padding:22px 10px;
}
.fc-login-brand {
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:34px;
}
.fc-login-brand > span {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:var(--grad-ember);
  color:#fff;
  font-size:28px;
  box-shadow:0 10px 28px rgba(234,88,12,.34);
}
.fc-login-brand b {
  display:block;
  font-size:22px;
  font-weight:900;
}
.fc-login-brand small {
  display:block;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.fc-login-hero h1 {
  max-width:650px;
  margin:0;
  font-size:46px;
  line-height:1.12;
  font-weight:900;
}
.fc-login-hero h1 span { color:var(--ember); }
.fc-login-hero p {
  max-width:610px;
  margin:18px 0 24px;
  color:#665846;
  font-size:16px;
  line-height:1.75;
}
.fc-login-points {
  display:grid;
  gap:12px;
  max-width:560px;
}
.fc-login-points div {
  display:grid;
  grid-template-columns:38px 1fr;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.58);
}
.fc-login-points b {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#FFF4E7;
}
.fc-login-points span {
  color:#40372B;
  font-weight:700;
}
.fc-login-card {
  position:relative;
  border:1px solid var(--line);
  border-top:5px solid var(--ember);
  border-radius:8px;
}
.fc-login-card h2 {
  margin:0;
  font-size:22px;
  font-weight:900;
}
.fc-login-badge {
  width:max-content;
  margin:0 auto 18px;
  padding:7px 13px;
  border-radius:999px;
  background:#FFF4E7;
  color:var(--ember-dark);
  font-size:12.5px;
  font-weight:900;
}
.fc-login-error {
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  padding:10px 12px;
  border:1px solid #F5C6BE;
  border-radius:12px;
  background:var(--bad-bg);
  color:var(--bad);
  font-weight:800;
  font-size:13px;
}
.fc-login-card .fc-field {
  margin-bottom:14px;
}
.fc-login-card .fc-field span {
  display:block;
  margin-bottom:6px;
  font-size:12.5px;
  color:#5F5345;
  font-weight:800;
}
.fc-login-submit {
  width:100%;
  justify-content:center;
  margin-top:4px;
  padding:13px 16px;
  font-size:15px;
}
.fc-login-meta {
  display:flex;
  justify-content:space-between;
  margin-top:16px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

/* ═══════════ RESPONSIVE ═══════════ */
.fc-burger { display:none; }
@media (max-width: 920px) {
  .fc-login-shell {
    grid-template-columns:1fr;
    gap:18px;
  }
  .fc-login-hero {
    padding:4px 0;
  }
  .fc-login-hero h1 {
    font-size:32px;
  }
  .fc-login-hero p {
    font-size:14px;
    margin:12px 0 16px;
  }
  .fc-login-brand {
    margin-bottom:18px;
  }
  .fc-settings-hero,
  .fc-settings-grid {
    grid-template-columns:1fr;
  }
  .fc-settings-hero {
    align-items:flex-start;
    flex-direction:column;
  }
  .fc-permission-grid {
    grid-template-columns:1fr 1fr;
  }
  .fc-sidebar {
    position:fixed; left:0; top:0; z-index:900; transform:translateX(-100%);
    transition:.25s; box-shadow:var(--shadow-lg); height:100vh; height:100dvh;
  }
  .fc-sidebar.open { transform:translateX(0); }
  .fc-burger {
    display:inline-flex; background:var(--surface); border:1.5px solid var(--line);
    border-radius:var(--radius-sm); padding:8px 12px; font-size:16px; cursor:pointer;
  }
  .fc-main { padding:18px 16px 50px; }
  .fc-grid2, .fc-grid-eq { grid-template-columns:1fr; }
}

/* ═══════════ NEW APP SHELL — top module launcher, no sidebar ═══════════ */
.fc-app {
  display:block;
  min-height:100vh;
  padding:16px 22px 24px;
  background:
    radial-gradient(760px 360px at 82% -12%, rgba(245,158,11,.13), transparent 62%),
    radial-gradient(520px 280px at 6% 0%, rgba(234,88,12,.08), transparent 58%),
    var(--bg);
}
.fc-sidebar,
.fc-burger {
  display:none !important;
}
.fc-main {
  flex:none;
  min-width:0;
  padding:0;
}
.fc-top {
  display:grid;
  grid-template-columns:minmax(280px, 1fr) minmax(360px, 560px) auto auto auto auto;
  gap:16px;
  align-items:center;
  margin-bottom:12px;
}
.fc-brand {
  display:grid;
  grid-template-columns:48px minmax(0, 1fr);
  gap:13px;
  align-items:center;
  min-width:0;
}
.fc-brand .fc-logo-mark {
  width:48px;
  height:48px;
  border-radius:16px;
  font-size:24px;
}
.fc-brand h1 {
  margin:0;
  font-size:22px;
  line-height:1.18;
  font-weight:800;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-top .sub {
  margin-top:3px;
  color:var(--muted);
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-global-search {
  display:grid;
  grid-template-columns:124px minmax(0, 1fr) 44px;
  align-items:center;
  background:rgba(255,255,255,.86);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 8px 24px rgba(36,30,24,.07);
  overflow:hidden;
}
.fc-global-search select,
.fc-global-search input,
.fc-global-search button {
  height:46px;
  border:0;
  font:inherit;
  font-synthesis:none;
}
.fc-global-search select {
  border-right:1px solid var(--line);
  background:#FFF9F1;
  color:var(--ink);
  font-weight:800;
  padding:0 12px;
  min-width:0;
}
.fc-global-search input {
  min-width:0;
  padding:0 14px;
  background:transparent;
  color:var(--ink);
  outline:none;
}
.fc-global-search input::placeholder { color:#A79987; }
.fc-global-search button {
  background:transparent;
  color:var(--ember-deep);
  cursor:pointer;
  font-size:18px;
}
.fc-user {
  display:grid;
  grid-template-columns:42px minmax(0, 1fr);
  gap:10px;
  align-items:center;
  background:rgba(255,255,255,.9);
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 18px 7px 7px;
  box-shadow:0 8px 24px rgba(36,30,24,.06);
  white-space:nowrap;
}
.fc-user .av {
  width:42px;
  height:42px;
  font-weight:800;
}
.fc-user b {
  display:block;
  color:var(--ink);
  font-size:13px;
  line-height:1.2;
}
.fc-user small {
  display:block;
  color:var(--muted);
  font-size:11px;
}
.fc-gear {
  width:48px;
  height:48px;
  border:1px solid var(--line);
  border-radius:17px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg, #FFFFFF, #FFF4E3);
  color:var(--ember-deep);
  box-shadow:0 8px 24px rgba(36,30,24,.06);
  font-size:22px;
  text-decoration:none;
}
.fc-smart-menu {
  position:relative;
  display:grid;
  place-items:center;
}
.fc-smart-bell {
  width:48px;
  height:48px;
  border:1px solid var(--line);
  border-radius:17px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg, #FFFFFF, #FFF4E3);
  color:var(--ember-deep);
  box-shadow:0 8px 24px rgba(36,30,24,.06);
  font:inherit;
  cursor:pointer;
  position:relative;
}
.fc-smart-bell span {
  font-size:21px;
  line-height:1;
}
.fc-smart-bell b {
  position:absolute;
  top:-5px;
  right:-5px;
  min-width:20px;
  height:20px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:var(--ember);
  color:#fff;
  border:2px solid var(--bg);
  font-size:11px;
  font-weight:900;
  line-height:1;
}
.fc-smart-popover {
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  z-index:50;
  width:min(360px, calc(100vw - 32px));
  padding:12px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 45px rgba(36,30,24,.16);
}
.fc-smart-popover[hidden] {
  display:none;
}
.fc-smart-popover h3 {
  margin:0 0 8px;
  color:var(--ink);
  font-size:13px;
  font-weight:900;
}
.fc-smart-popover-list {
  display:grid;
  gap:6px;
}
.fc-smart-popover-list a {
  display:grid;
  grid-template-columns:30px minmax(0, 1fr);
  gap:8px;
  align-items:center;
  min-width:0;
  padding:8px;
  border:1px solid var(--line-soft);
  border-radius:12px;
  background:#FFFDF8;
  color:var(--ink-2);
  text-decoration:none;
}
.fc-smart-popover-list a:hover {
  border-color:#F2D6B5;
  background:#FFF7EA;
}
.fc-smart-popover-list span {
  width:30px;
  height:30px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#FBE3BC;
  font-size:14px;
}
.fc-smart-popover-list b {
  min-width:0;
  font-size:12px;
  line-height:1.35;
  font-weight:700;
}
body.fc-subsystem {
  overflow:auto;
}
body.fc-subsystem .fc-app {
  display:grid;
  grid-template-columns:276px minmax(0, 1fr);
  grid-template-rows:auto 1fr;
  column-gap:18px;
  min-height:100vh;
  padding:16px 22px 24px 0;
}
.fc-left-shell {
  grid-row:1 / span 2;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
  background:linear-gradient(180deg, #241E18, #17110D);
  color:#FDF6EC;
  padding:18px 14px;
  box-shadow:8px 0 30px rgba(36,30,24,.14);
}
.fc-left-brand {
  display:grid;
  grid-template-columns:42px 1fr;
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:4px 8px 18px;
  color:#FDF6EC;
  text-decoration:none;
}
.fc-left-brand span {
  grid-row:1 / span 2;
  width:42px;
  height:42px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:var(--grad-ember);
  box-shadow:0 8px 20px rgba(234,88,12,.34);
}
.fc-left-brand b {
  font-size:17px;
  line-height:1.1;
  font-weight:800;
}
.fc-left-brand small {
  color:var(--amber);
  font-size:9px;
  font-weight:800;
  letter-spacing:2px;
}
.fc-left-dashboard {
  display:grid;
  grid-template-columns:34px minmax(0, 1fr);
  grid-template-rows:auto auto;
  column-gap:9px;
  align-items:center;
  min-width:0;
  margin:0 0 14px;
  padding:10px;
  border-radius:14px;
  color:#FDF6EC;
  text-decoration:none;
  border:1px solid rgba(245,158,11,.22);
  background:linear-gradient(90deg, rgba(234,88,12,.28), rgba(245,158,11,.10));
}
.fc-left-dashboard:hover {
  background:linear-gradient(90deg, rgba(234,88,12,.36), rgba(245,158,11,.16));
}
.fc-left-dashboard span {
  grid-row:1 / span 2;
  width:34px;
  height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.12);
  font-size:16px;
}
.fc-left-dashboard b {
  min-width:0;
  font-size:12.5px;
  line-height:1.2;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-left-dashboard small {
  min-width:0;
  color:#D8C8B8;
  font-size:10.8px;
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-left-nav,
.fc-left-subnav {
  display:grid;
  gap:5px;
}
.fc-left-nav .sec {
  color:#7E7060;
  font-size:10.5px;
  font-weight:800;
  letter-spacing:1.5px;
  padding:10px 10px 5px;
}
.fc-left-nav a,
.fc-left-subnav a {
  display:grid;
  grid-template-columns:34px minmax(0, 1fr);
  grid-template-rows:auto auto;
  column-gap:9px;
  align-items:center;
  min-width:0;
  padding:9px 10px;
  border-radius:13px;
  color:#AFA293;
  text-decoration:none;
  border:1px solid transparent;
  transition:.16s;
}
.fc-left-nav a:hover,
.fc-left-subnav a:hover {
  background:#332A22;
  color:#F5EDE2;
}
.fc-left-nav a.on,
.fc-left-subnav a.on {
  background:linear-gradient(90deg, rgba(245,158,11,.22), rgba(234,88,12,.10));
  border-color:rgba(245,158,11,.20);
  color:#FDF6EC;
}
.fc-left-nav a span,
.fc-left-subnav a span {
  grid-row:1 / span 2;
  width:34px;
  height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.08);
  font-size:16px;
}
.fc-left-nav a.on span,
.fc-left-subnav a.on span {
  background:rgba(245,158,11,.22);
}
.fc-left-nav a b,
.fc-left-subnav a b {
  min-width:0;
  font-size:12.5px;
  line-height:1.2;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-left-nav a small,
.fc-left-subnav a small {
  min-width:0;
  font-size:10.8px;
  line-height:1.3;
  color:#827466;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-left-nav a.on small,
.fc-left-subnav a.on small {
  color:#D8C8B8;
}
.fc-left-subnav {
  margin-top:0;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
}
.fc-left-module-head {
  display:grid;
  grid-template-columns:40px minmax(0, 1fr);
  gap:9px;
  align-items:center;
  margin-bottom:6px;
  padding:10px;
  border-radius:15px;
  background:
    radial-gradient(90px 54px at 0 0, color-mix(in srgb, var(--accent), transparent 60%), transparent 76%),
    rgba(255,255,255,.06);
  border:1px solid color-mix(in srgb, var(--accent), transparent 70%);
}
.fc-left-module-head > span {
  width:40px;
  height:40px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb, var(--accent), #FFFFFF 78%);
  color:var(--accent);
}
.fc-left-module-head small {
  display:block;
  color:var(--amber);
  font-size:10px;
  line-height:1;
  font-weight:800;
  letter-spacing:.9px;
  text-transform:uppercase;
}
.fc-left-module-head b {
  display:block;
  margin-top:3px;
  color:#FDF6EC;
  font-size:15px;
  line-height:1.25;
  font-weight:800;
}
body.fc-subsystem .fc-top {
  grid-column:2;
  margin-bottom:14px;
}
body.fc-subsystem .fc-module-row {
  display:none;
}
body.fc-subsystem .fc-workspace {
  grid-column:2;
}
body.fc-subsystem .fc-workspace.has-sidebar {
  display:block;
}
body.fc-subsystem .fc-module-sidebar {
  display:none;
}
.fc-module-row {
  display:grid;
  grid-template-columns:repeat(8, minmax(132px, 1fr));
  gap:12px;
  margin-bottom:14px;
}
.fc-module-card {
  min-height:96px;
  border:1px solid var(--line);
  border-radius:18px;
  background:
    radial-gradient(150px 96px at 6% 0%, var(--tint, #FDEEDC), transparent 72%),
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,248,238,.92));
  padding:12px;
  display:grid;
  grid-template-columns:40px minmax(0, 1fr);
  gap:10px;
  align-items:start;
  box-shadow:0 6px 18px rgba(36,30,24,.055);
  position:relative;
  overflow:hidden;
  text-decoration:none;
  color:var(--ink);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.fc-module-card::after {
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:10px;
  height:4px;
  border-radius:999px;
  background:var(--accent, var(--ember));
  opacity:.78;
}
.fc-module-card::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(135deg, transparent 45%, color-mix(in srgb, var(--accent, #EA580C), transparent 88%));
  pointer-events:none;
}
.fc-module-card:hover {
  transform:translateY(-2px);
  border-color:color-mix(in srgb, var(--accent, #EA580C), var(--line) 45%);
  box-shadow:0 12px 26px rgba(36,30,24,.10);
}
.fc-module-card.on {
  background:
    radial-gradient(180px 110px at 12% 0%, color-mix(in srgb, var(--accent, #EA580C), transparent 45%), transparent 72%),
    linear-gradient(145deg, #2F261F, #18120E);
  border-color:rgba(245,158,11,.45);
  box-shadow:0 12px 30px rgba(36,30,24,.18);
  color:#FDF6EC;
}
.fc-module-card .ic {
  width:40px;
  height:40px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb, var(--accent, #EA580C), #FFFFFF 84%);
  color:var(--accent, #EA580C);
  font-size:20px;
  position:relative;
  z-index:1;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}
.fc-module-card.on .ic {
  background:rgba(245,158,11,.22);
  color:#F59E0B;
}
.fc-module-card .txt {
  min-width:0;
  display:grid;
  gap:2px;
  position:relative;
  z-index:1;
}
.fc-module-card b,
.fc-module-card small,
.fc-module-card em {
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-module-card b {
  font-size:13px;
  line-height:1.25;
  font-weight:800;
}
.fc-module-card small {
  color:var(--accent, var(--ember));
  text-transform:uppercase;
  letter-spacing:.8px;
  font-size:11px;
  line-height:1.1;
  font-weight:800;
}
.fc-module-card em {
  color:var(--muted);
  font-size:11.5px;
  line-height:1.35;
  font-style:normal;
}
.fc-module-card.on small { color:#F59E0B; }
.fc-module-card.on em { color:#DCCDBB; }
.fc-module-row.fc-module-strip {
  grid-template-columns:repeat(8, minmax(118px, 1fr));
  gap:8px;
  margin-bottom:12px;
}
.fc-module-strip .fc-module-card {
  min-height:58px;
  border-radius:14px;
  padding:8px 10px;
  grid-template-columns:30px minmax(0, 1fr);
  gap:8px;
  align-items:center;
}
.fc-module-strip .fc-module-card::after {
  left:10px;
  right:10px;
  bottom:7px;
  height:3px;
}
.fc-module-strip .fc-module-card .ic {
  width:30px;
  height:30px;
  border-radius:11px;
  font-size:16px;
}
.fc-module-strip .fc-module-card small {
  font-size:9.5px;
  line-height:1;
}
.fc-module-strip .fc-module-card b {
  font-size:12px;
}
.fc-module-strip .fc-module-card em {
  display:none;
}
.fc-subnav {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:-2px 0 12px;
}
.fc-subnav a {
  text-decoration:none;
  color:var(--ink-2);
  background:rgba(255,255,255,.82);
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 12px;
  font-size:13px;
  font-weight:800;
}
.fc-subnav a.on {
  color:#fff;
  background:var(--grad-ember);
  border-color:transparent;
  box-shadow:0 6px 16px rgba(234,88,12,.22);
}
.fc-workspace {
  min-width:0;
}
.fc-workspace.has-sidebar {
  display:grid;
  grid-template-columns:280px minmax(0, 1fr);
  gap:14px;
  align-items:start;
}
.fc-module-sidebar {
  position:sticky;
  top:14px;
  background:rgba(255,255,255,.9);
  border:1px solid var(--line);
  border-radius:20px;
  padding:12px;
  box-shadow:0 8px 24px rgba(36,30,24,.06);
}
.fc-side-head {
  display:grid;
  grid-template-columns:46px minmax(0, 1fr);
  gap:10px;
  align-items:center;
  padding:10px;
  border-radius:16px;
  background:
    radial-gradient(120px 70px at 0 0, var(--tint), transparent 70%),
    linear-gradient(145deg, #FFFDF9, #FFF5E7);
  border:1px solid color-mix(in srgb, var(--accent), var(--line) 62%);
  margin-bottom:10px;
}
.fc-side-head > span {
  width:46px;
  height:46px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb, var(--accent), #FFFFFF 84%);
  font-size:23px;
}
.fc-side-head small {
  display:block;
  color:var(--accent);
  font-size:11px;
  line-height:1;
  font-weight:800;
  letter-spacing:.8px;
  text-transform:uppercase;
}
.fc-side-head b {
  display:block;
  color:var(--ink);
  font-size:16px;
  line-height:1.3;
  font-weight:800;
  margin-top:3px;
}
.fc-side-menu {
  display:grid;
  gap:7px;
}
.fc-side-menu a {
  display:grid;
  grid-template-columns:34px minmax(0, 1fr);
  grid-template-rows:auto auto;
  column-gap:9px;
  align-items:center;
  text-decoration:none;
  color:var(--ink-2);
  border:1px solid transparent;
  border-radius:15px;
  padding:10px;
  transition:.16s;
}
.fc-side-menu a:hover {
  background:#FFF8EE;
  border-color:var(--line);
}
.fc-side-menu a.on {
  background:linear-gradient(90deg, rgba(245,158,11,.18), rgba(234,88,12,.08));
  border-color:#F2D6B5;
}
.fc-side-menu a > span {
  grid-row:1 / span 2;
  width:34px;
  height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#FFF2DE;
  font-size:17px;
}
.fc-side-menu strong {
  min-width:0;
  color:var(--ink);
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-side-menu small {
  min-width:0;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-chip {
  color:var(--ember-deep);
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  margin-left:auto;
}
.fc-toolbar h3 {
  margin-bottom:0;
}

/* Dashboard first screen */
body.fc-page-dashboard {
  overflow:hidden;
}
body.fc-page-dashboard .fc-app {
  display:grid;
  grid-template-rows:auto auto minmax(0, 1fr);
  height:100dvh;
  min-height:0;
  overflow:hidden;
}
body.fc-page-dashboard .fc-top {
  margin-bottom:10px;
}
body.fc-page-dashboard .fc-module-row {
  margin-bottom:10px;
}
body.fc-page-dashboard .fc-workspace,
body.fc-page-dashboard .fc-main {
  height:100%;
  min-height:0;
  overflow:hidden;
}
body.fc-page-dashboard .fc-dashboard-shell {
  display:grid;
  grid-template-columns:minmax(0, 1.3fr) minmax(330px, .62fr);
  gap:12px;
  height:100%;
  min-width:0;
  min-height:0;
}
.fc-dashboard-main,
.fc-dashboard-side {
  display:grid;
  gap:12px;
  min-width:0;
  min-height:0;
  align-content:stretch;
}
.fc-dashboard-main {
  grid-template-rows:minmax(0, 1fr);
}
.fc-dashboard-main > *,
.fc-dashboard-side > * {
  min-width:0;
  max-width:100%;
}
.fc-dashboard-side {
  grid-template-rows:214px minmax(0, 1fr) 178px;
}
.fc-page-dashboard .fc-dashboard-table,
.fc-page-dashboard .fc-dashboard-smart {
  display:none;
}
.fc-page-dashboard .fc-dashboard-side .fc-dashboard-smart {
  display:none !important;
}
.fc-map-card {
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
}
.fc-live-map {
  width:100%;
  min-height:0;
  height:100%;
  border-radius:17px;
  border:1px solid var(--line);
  position:relative;
  overflow:hidden;
  background:#E9F3EA;
}
.fc-map-loading {
  height:100%;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:13px;
  font-weight:800;
}
.fc-map-panel {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:10px;
  background:#FFFDF8;
  border:1px solid var(--line);
  border-radius:16px;
  padding:9px 12px;
  color:var(--ink-2);
  font-size:12px;
}
.fc-map-panel b { color:var(--ink); }
.fc-map-div-icon {
  background:transparent;
  border:0;
}
.fc-map-div-icon span {
  width:42px;
  height:42px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:#fff;
  border:2px solid #EA580C;
  box-shadow:0 10px 24px rgba(36,30,24,.22);
  font-size:22px;
}
.fc-map-div-icon.is-ready span { border-color:#0369A1; }
.fc-map-div-icon.is-maintenance span { border-color:#DC2626; }
.fc-map-div-icon.is-running span { border-color:#15803D; }
.fc-dashboard-kpis {
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
}
.fc-mini-kpis {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  min-height:0;
}
.fc-mini-kpi {
  min-width:0;
  border:1px solid var(--line);
  border-left:4px solid var(--ac);
  border-radius:14px;
  background:#FFFDF8;
  padding:8px 10px;
}
.fc-mini-kpi span {
  display:block;
  color:var(--muted);
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-mini-kpi b {
  display:block;
  margin:4px 0;
  color:var(--ink);
  font-size:19px;
  line-height:1;
  font-weight:900;
}
.fc-mini-kpi small {
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}
.fc-mini-kpi em {
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-dashboard-table .fc-toolbar {
  margin-bottom:6px;
}
.fc-dashboard-table {
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
}
.fc-dashboard-table .fc-table-wrap {
  width:100%;
  min-width:0;
  max-height:none;
  height:100%;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(120,96,70,.22) transparent;
}
.fc-dashboard-table .fc-table-wrap::-webkit-scrollbar {
  width:7px;
  height:7px;
}
.fc-dashboard-table .fc-table-wrap::-webkit-scrollbar-track {
  background:transparent;
}
.fc-dashboard-table .fc-table-wrap::-webkit-scrollbar-thumb {
  background:rgba(120,96,70,.18);
  border-radius:999px;
}
.fc-dashboard-table .fc-table-wrap:hover::-webkit-scrollbar-thumb {
  background:rgba(120,96,70,.28);
}
.fc-dashboard-table .fc-table {
  min-width:820px;
  font-size:12px;
}
.fc-dashboard-table .fc-table th {
  padding:8px 11px;
}
.fc-dashboard-table .fc-table td {
  padding:7px 11px;
}
.fc-dashboard-side .fc-card,
.fc-dashboard-side .fc-smart {
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
  padding:12px 16px;
}
.fc-dashboard-side h3 {
  margin-bottom:6px;
  flex:0 0 auto;
}
.fc-dashboard-side .fc-smart-item {
  padding:6px 0;
  gap:8px;
  font-size:12px;
}
.fc-dashboard-side .fc-smart-item .ic {
  width:32px;
  height:32px;
  border-radius:12px;
}
.fc-alert-list {
  display:grid;
  flex:1 1 auto;
  align-content:start;
  grid-auto-rows:max-content;
  min-height:0;
  overflow:auto;
  scrollbar-width:thin;
}
.fc-dashboard-side .fc-smart > .fc-smart-item,
.fc-dashboard-side .fc-alert-list,
.fc-dashboard-side .fc-cost-bars {
  min-height:0;
}
.fc-alert-row {
  display:grid;
  grid-template-columns:28px minmax(0, 1fr) auto;
  gap:8px;
  align-items:center;
  padding:7px 0;
  border-bottom:1px solid var(--line-soft);
}
.fc-alert-row:last-child { border-bottom:0; }
.fc-alert-row > span {
  width:28px;
  height:28px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:rgba(245,158,11,.16);
}
.fc-alert-row b {
  display:block;
  color:var(--ink);
  font-size:11.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-alert-row small {
  display:block;
  color:var(--muted);
  font-size:10.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fc-alert-row em {
  color:var(--ember-deep);
  font-style:normal;
  font-size:11.5px;
  font-weight:800;
  white-space:nowrap;
}
.fc-cost-bars {
  display:grid;
  flex:1 1 auto;
  align-content:start;
  gap:4px;
  min-height:0;
  overflow:visible;
}
.fc-cost-bars div {
  display:grid;
  grid-template-columns:76px minmax(0, 1fr) 38px;
  gap:6px;
  align-items:center;
  color:var(--ink-2);
  font-size:11.5px;
  font-weight:800;
}
.fc-cost-bars small {
  grid-column:2 / 4;
  color:var(--muted);
  font-size:10.5px;
  font-weight:700;
  margin-top:-6px;
}
.fc-cost-bars b {
  height:8px;
  border-radius:999px;
  background:#F1E2D0;
  overflow:hidden;
  position:relative;
}
.fc-cost-bars b::after {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:var(--w);
  border-radius:inherit;
  background:var(--grad-ember);
}

/* Login redesign v2 */
.fc-login-redesign {
  min-height:100vh;
  padding:24px;
  background:
    linear-gradient(120deg, rgba(36,30,24,.82), rgba(36,30,24,.46)),
    url("https://images.unsplash.com/photo-1586528116311-ad8dd3c8310d?auto=format&fit=crop&w=1800&q=80") center/cover;
}
.fc-login-redesign::before {
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(250,246,240,.94) 0%, rgba(250,246,240,.88) 47%, rgba(250,246,240,.52) 100%);
}
.fc-login-shell-v2 {
  position:relative;
  z-index:1;
  width:min(1180px, 100%);
  min-height:min(760px, calc(100vh - 48px));
  display:grid;
  grid-template-columns:minmax(0, 1fr) 410px;
  gap:28px;
  align-items:stretch;
}
.fc-login-hero-v2 {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-width:0;
  padding:34px;
  border:1px solid rgba(255,255,255,.66);
  border-radius:28px;
  background:rgba(255,253,248,.76);
  box-shadow:0 24px 70px rgba(36,30,24,.18);
  backdrop-filter:blur(12px);
}
.fc-login-brand-v2 {
  display:flex;
  align-items:center;
  gap:15px;
}
.fc-login-brand-v2 > span {
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:19px;
  background:var(--grad-ember);
  color:#fff;
  font-size:30px;
  box-shadow:0 14px 34px rgba(234,88,12,.34);
}
.fc-login-brand-v2 small {
  display:block;
  color:var(--ember-deep);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.fc-login-brand-v2 b {
  display:block;
  font-size:19px;
  font-weight:900;
  color:var(--ink);
}
.fc-login-hero-v2 h1 {
  max-width:720px;
  margin:36px 0 8px;
  font-size:54px;
  line-height:1.06;
  font-weight:900;
  color:var(--ink);
}
.fc-login-slogan {
  max-width:730px;
  margin:0;
  color:#5D4E3E;
  font-size:20px;
  line-height:1.6;
  font-weight:800;
}
.fc-login-command {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 230px;
  gap:16px;
  margin:30px 0 22px;
}
.fc-login-map {
  position:relative;
  min-height:230px;
  overflow:hidden;
  border:1px solid #E8D5BE;
  border-radius:22px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.54) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.54) 1px, transparent 1px),
    linear-gradient(135deg, #F7EBD9, #FFFDF8);
  background-size:42px 42px, 42px 42px, auto;
}
.fc-login-map .hub,
.fc-login-map .node {
  position:absolute;
  z-index:2;
  display:grid;
  place-items:center;
  min-width:64px;
  height:34px;
  padding:0 11px;
  border-radius:999px;
  color:#fff;
  font-size:12px;
  font-weight:900;
  box-shadow:0 10px 22px rgba(36,30,24,.18);
}
.fc-login-map .hub {
  left:44%;
  top:42%;
  background:var(--grad-ember);
}
.fc-login-map .node {
  background:#241E18;
}
.fc-login-map .n1 { left:12%; top:18%; }
.fc-login-map .n2 { right:11%; top:20%; }
.fc-login-map .n3 { left:18%; bottom:16%; }
.fc-login-map .route {
  position:absolute;
  z-index:1;
  height:5px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(245,158,11,.18), rgba(234,88,12,.88));
  transform-origin:left center;
}
.fc-login-map .r1 { width:38%; left:19%; top:29%; transform:rotate(18deg); }
.fc-login-map .r2 { width:32%; left:49%; top:48%; transform:rotate(-30deg); }
.fc-login-map .r3 { width:34%; left:25%; bottom:28%; transform:rotate(-19deg); }
.fc-login-live {
  display:grid;
  gap:10px;
}
.fc-login-live div {
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:70px;
  padding:12px 14px;
  border:1px solid #E8D5BE;
  border-radius:18px;
  background:#FFFDF8;
}
.fc-login-live span {
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.fc-login-live b {
  color:var(--ink);
  font-size:25px;
  line-height:1.1;
  font-weight:900;
}
.fc-login-live em {
  color:var(--ok);
  font-size:11.5px;
  font-style:normal;
  font-weight:900;
}
.fc-login-points-v2 {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.fc-login-points-v2 div {
  display:grid;
  grid-template-columns:36px 1fr;
  gap:9px;
  align-items:center;
  min-height:72px;
  padding:12px;
  border:1px solid #E8D5BE;
  border-radius:18px;
  background:rgba(255,253,248,.86);
}
.fc-login-points-v2 b {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#FFF0DC;
}
.fc-login-points-v2 span {
  color:#463A2D;
  font-size:12.5px;
  line-height:1.45;
  font-weight:800;
}
.fc-login-card-v2 {
  align-self:center;
  max-width:none;
  padding:28px;
  border:1px solid rgba(255,255,255,.72);
  border-top:0;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:0 24px 70px rgba(36,30,24,.22);
  backdrop-filter:blur(16px);
}
.fc-login-card-head {
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:24px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.fc-login-card-head .mark {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:var(--grad-ember);
  color:#fff;
  font-size:28px;
  box-shadow:0 12px 28px rgba(234,88,12,.28);
}
.fc-login-card-head small {
  display:block;
  color:var(--ember-deep);
  font-size:11px;
  font-weight:900;
  letter-spacing:.11em;
}
.fc-login-card-head h2 {
  margin:0;
  font-size:27px;
  line-height:1.1;
  font-weight:900;
}
.fc-login-card-v2 .fc-field {
  margin-bottom:15px;
}
.fc-login-card-v2 .fc-field span {
  display:block;
  margin-bottom:7px;
  color:#574A3A;
  font-size:12.5px;
  font-weight:900;
}
.fc-login-card-v2 .fc-input {
  min-height:46px;
  border-radius:14px;
  background:#FFFDF8;
}
.fc-login-card-v2 .fc-login-submit {
  min-height:48px;
  border-radius:14px;
  font-size:15px;
}
.fc-login-admin-note {
  display:grid;
  grid-template-columns:42px 1fr;
  gap:10px;
  align-items:center;
  margin-top:18px;
  padding:13px;
  border:1px solid #F0C995;
  border-radius:16px;
  background:#FFF6E8;
}
.fc-login-admin-note > span {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#FFE5BC;
}
.fc-login-admin-note b,
.fc-login-admin-note small {
  display:block;
}
.fc-login-admin-note small {
  color:#6B5944;
  font-size:12px;
  line-height:1.35;
}
@media (max-width: 980px) {
  .fc-login-shell-v2 {
    grid-template-columns:1fr;
  }
  .fc-login-card-v2 {
    align-self:stretch;
  }
}
@media (max-width: 680px) {
  .fc-login-redesign {
    padding:14px;
  }
  .fc-login-hero-v2 {
    padding:22px;
    border-radius:22px;
  }
  .fc-login-hero-v2 h1 {
    font-size:34px;
    margin-top:24px;
  }
  .fc-login-slogan {
    font-size:15.5px;
  }
  .fc-login-command,
  .fc-login-points-v2 {
    grid-template-columns:1fr;
  }
  .fc-login-map {
    min-height:190px;
  }
  .fc-login-card-v2 {
    padding:22px;
    border-radius:22px;
  }
}

/* Login redesign v3 - dark transport split */
.fc-login-dark {
  min-height:100vh;
  padding:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    linear-gradient(90deg, rgba(9,13,24,1) 0%, rgba(9,13,24,.98) 30%, rgba(13,19,34,.76) 58%, rgba(13,19,34,.42) 100%),
    url("https://images.unsplash.com/photo-1586528116311-ad8dd3c8310d?auto=format&fit=crop&w=1900&q=82") center right/cover;
}
.fc-login-dark::before {
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(9,13,24,.64) 0%, rgba(9,13,24,.48) 31%, rgba(9,13,24,.16) 56%, rgba(9,13,24,0) 100%),
    linear-gradient(0deg, rgba(9,13,24,.9) 0%, rgba(9,13,24,.12) 36%, rgba(9,13,24,.08) 100%);
  opacity:1;
}
.fc-login-dark::after {
  content:"";
  position:fixed;
  right:-150px;
  top:-190px;
  width:620px;
  height:620px;
  pointer-events:none;
  border:48px solid rgba(234,88,12,.1);
  border-radius:50%;
}
.fc-login-stage {
  position:relative;
  z-index:1;
  width:min(1540px, calc(100vw - 96px));
  min-height:720px;
  display:grid;
  grid-template-columns:minmax(0, 670px) 400px;
  justify-content:center;
  align-items:center;
  gap:170px;
}
.fc-login-copy {
  color:#fff;
}
.fc-login-brand-dark {
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:32px;
}
.fc-login-brand-dark > span {
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  border:1px solid rgba(234,88,12,.55);
  background:linear-gradient(135deg, rgba(234,88,12,.22), rgba(36,30,24,.65));
  color:#fff;
  font-size:34px;
  box-shadow:0 18px 50px rgba(234,88,12,.18);
}
.fc-login-brand-dark b {
  display:block;
  color:#fff;
  font-size:34px;
  line-height:1;
  font-weight:900;
}
.fc-login-brand-dark small {
  display:block;
  margin-top:8px;
  color:#9FA9BA;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.fc-login-copy h1 {
  max-width:660px;
  margin:0 0 18px;
  color:#fff;
  font-size:54px;
  line-height:1.08;
  font-weight:900;
}
.fc-login-copy h1 span {
  color:#FF7A1A;
}
.fc-login-copy p {
  max-width:650px;
  margin:0 0 38px;
  color:#BBC5D3;
  font-size:17px;
  line-height:1.8;
  font-weight:700;
}
.fc-login-feature-list {
  display:grid;
  gap:14px;
}
.fc-login-feature-list div {
  display:grid;
  grid-template-columns:42px 1fr;
  gap:14px;
  align-items:center;
}
.fc-login-feature-list b {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(234,88,12,.42);
  background:rgba(234,88,12,.15);
  color:#FF8A2A;
  font-size:18px;
}
.fc-login-feature-list strong {
  display:block;
  color:#fff;
  font-size:15px;
  font-weight:900;
}
.fc-login-feature-list small {
  display:block;
  margin-top:3px;
  color:#AAB4C5;
  font-size:13px;
  line-height:1.45;
  font-weight:700;
}
.fc-login-panel {
  width:400px;
  padding:30px 32px 28px;
  border:1px solid rgba(255,255,255,.1);
  border-top:3px solid #FF7A1A;
  background:rgba(29,35,54,.94);
  box-shadow:0 28px 70px rgba(0,0,0,.34);
}
.fc-login-panel-head {
  margin:0 -32px 24px;
  padding:0 32px 24px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.fc-login-panel-head span {
  display:inline-flex;
  width:max-content;
  margin-bottom:16px;
  padding:7px 12px;
  background:rgba(234,88,12,.18);
  color:#FF8A2A;
  font-size:12px;
  font-weight:900;
}
.fc-login-panel-head h2 {
  margin:0;
  color:#fff;
  font-size:29px;
  line-height:1.1;
  font-weight:900;
}
.fc-login-panel-head p {
  margin:8px 0 0;
  color:#95A0B2;
  font-size:13px;
  line-height:1.5;
}
.fc-login-panel .fc-field {
  display:block;
  margin-bottom:16px;
}
.fc-login-panel .fc-field span {
  display:block;
  margin-bottom:7px;
  color:#AEB8C9;
  font-size:12px;
  font-weight:900;
}
.fc-login-panel .fc-input {
  height:45px;
  border:1px solid rgba(255,122,26,.38);
  border-radius:0;
  background:#EAF1FB;
  color:#0E1626;
  font-size:14px;
  font-weight:800;
}
.fc-login-panel .fc-input:focus {
  outline:2px solid rgba(255,122,26,.35);
  border-color:#FF7A1A;
}
.fc-login-panel .fc-login-submit {
  width:100%;
  min-height:47px;
  justify-content:center;
  margin-top:6px;
  border-radius:0;
  background:linear-gradient(135deg, #FF7A1A, #EA580C);
  box-shadow:0 14px 30px rgba(234,88,12,.22);
  font-size:15px;
  font-weight:900;
}
.fc-login-panel .fc-login-meta {
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#7E899B;
  font-size:12px;
}
.fc-login-panel .fc-login-error {
  border-radius:0;
  background:rgba(220,38,38,.15);
  border-color:rgba(220,38,38,.35);
  color:#FCA5A5;
}
@media (max-width: 1180px) {
  .fc-login-stage {
    width:min(980px, calc(100vw - 44px));
    grid-template-columns:minmax(0, 1fr) 380px;
    gap:56px;
  }
  .fc-login-copy h1 {
    font-size:44px;
  }
  .fc-login-brand-dark b {
    font-size:28px;
  }
}
@media (max-width: 860px) {
  .fc-login-dark {
    overflow:auto;
    padding:22px 0;
  }
  .fc-login-stage {
    min-height:0;
    grid-template-columns:1fr;
    gap:26px;
  }
  .fc-login-panel {
    width:100%;
  }
}
@media (max-width: 560px) {
  .fc-login-stage {
    width:calc(100vw - 28px);
  }
  .fc-login-copy h1 {
    font-size:34px;
  }
  .fc-login-copy p {
    font-size:14px;
    margin-bottom:24px;
  }
  .fc-login-brand-dark {
    align-items:flex-start;
  }
  .fc-login-brand-dark > span {
    width:56px;
    height:56px;
    font-size:26px;
  }
  .fc-login-brand-dark b {
    font-size:23px;
  }
  .fc-login-feature-list div {
    grid-template-columns:36px 1fr;
  }
  .fc-login-feature-list b {
    width:34px;
    height:34px;
  }
  .fc-login-panel {
    padding:24px;
  }
  .fc-login-panel-head {
    margin:0 -24px 22px;
    padding:0 24px 22px;
  }
}

@media (max-width:1280px) {
  .fc-top {
    grid-template-columns:minmax(260px, 1fr) minmax(280px, 420px) auto auto auto;
  }
  .fc-module-row {
    grid-template-columns:repeat(4, minmax(150px, 1fr));
  }
  .fc-module-row.fc-module-strip {
    grid-template-columns:repeat(4, minmax(130px, 1fr));
  }
  .fc-workspace.has-sidebar {
    grid-template-columns:240px minmax(0, 1fr);
  }
  body.fc-page-dashboard {
    overflow:auto;
  }
  body.fc-page-dashboard .fc-app {
    display:block;
    height:auto;
    min-height:100vh;
    overflow:visible;
  }
  body.fc-page-dashboard .fc-workspace,
  body.fc-page-dashboard .fc-main {
    overflow:visible;
  }
  body.fc-page-dashboard .fc-dashboard-shell {
    height:auto;
    grid-template-columns:1fr;
  }
  .fc-dashboard-main,
  .fc-dashboard-side {
    grid-template-rows:auto;
  }
  .fc-live-map {
    min-height:330px;
  }
  .fc-dashboard-side {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width:920px) {
  .fc-app {
    padding:14px;
  }
  body.fc-subsystem .fc-app {
    display:block;
    padding:14px;
  }
  .fc-left-shell {
    position:relative;
    height:auto;
    max-height:none;
    border-radius:20px;
    margin-bottom:14px;
    padding:14px;
  }
  .fc-left-nav {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .fc-left-nav .sec {
    grid-column:1 / -1;
  }
  .fc-left-subnav {
    grid-template-columns:1fr;
  }
  body.fc-subsystem .fc-top,
  body.fc-subsystem .fc-workspace {
    grid-column:auto;
  }
  .fc-top {
    grid-template-columns:1fr;
  }
  .fc-global-search {
    grid-template-columns:116px minmax(0, 1fr) 44px;
  }
  .fc-module-row {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .fc-module-row.fc-module-strip {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .fc-workspace.has-sidebar {
    grid-template-columns:1fr;
  }
  .fc-module-sidebar {
    position:static;
  }
  .fc-side-menu {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
  .fc-side-menu a {
    min-width:0;
  }
  .fc-dashboard-side {
    grid-template-columns:1fr;
  }
  .fc-grid2,
  .fc-grid-eq {
    grid-template-columns:1fr;
  }
  .fc-profile-grid {
    grid-template-columns:1fr;
  }
}

@media (max-width:640px) {
  .fc-module-card {
    min-height:88px;
  }
  .fc-map-card h3 {
    display:block;
    line-height:1.35;
  }
  .fc-map-card .fc-chip {
    display:block;
    margin:4px 0 0;
    white-space:normal;
  }
  .fc-side-menu {
    grid-template-columns:1fr;
  }
  .fc-profile-overlay {
    padding:10px;
  }
  .fc-profile-modal {
    max-height:94vh;
    border-radius:18px;
  }
  .fc-profile-head,
  .fc-profile-form {
    padding-left:14px;
    padding-right:14px;
  }
  .fc-signature-pad {
    height:150px;
  }
}
