/* no~bull consulting — Master Shared Styles 
   Typography: Lato-Lite 30 (Headers), Roboto 12 (Body), Roboto 8-10 (Footer)
   Features: Stacked Navigation, Left-Aligned Containers, Software Grid & Buttons
*/

@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300&family=Roboto:wght@400;500&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --oxford-blue:  #002147;
  --racing-green: #004225;
  --stone:        #F2F0EF;
  --slate:        #4A4E52;
  --white:        #FFFFFF;
  --text:         #1A1A1B;
  --grey-light:   #D1D5DB;
  --font-header: 'Lato', sans-serif; 
  --font-body:   'Roboto', sans-serif;
  --max-w:       1100px;
  --r:           4px; 
}

body {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--text);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* Dashboard Grid */
.instance-grid {
    display: grid;
    grid-template-columns: 1fr; /* Single column for mobile first */
    gap: 12px;
    margin: 20px 0;
    max-height: 400px;
    overflow-y: auto;
}

/* Desktop upgrade for grid */
@media (min-width: 600px) {
    .instance-grid {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }
}

/* Prevent text selection for a more 'App-like' feel */
.company-card, button {
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}

/* Ensure the iframe fills the screen perfectly without scrolls */
#appFrame {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    border: none;
    z-index: 999;
}

/* Loading Spinner for the 'Fetching' state */
.spinner {
    border: 3px solid rgba(20, 168, 174, 0.1);
    border-top: 3px solid #14A8AE;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    animation: spin 0.8s linear infinite;
    margin: 20px auto;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Individual Company Card */
.company-card {
    background: #0f172a; /* Deep Navy to match your theme */
    padding: 18px;
    border-radius: 12px;
    border: 1px solid #334155;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
    border-left: 4px solid #14A8AE; /* Your Teal accent color */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.company-card:hover, .company-card:active {
    border-color: #14A8AE;
    background: #1e293b;
    transform: translateY(-2px);
}

.company-card .name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    color: white;
    font-size: 15px;
    margin-bottom: 4px;
}

.company-card .status {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ── STACKED NAVIGATION ── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: var(--white);
  border-bottom: 1px solid var(--grey-light);
}

.nav-inner {
  max-width: var(--max-w); 
  margin: 0 auto; 
  padding: 10px 24px;
  display: flex; 
  flex-direction: column; 
  align-items: center; 
}

.nav-logo {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  margin-bottom: 10px;
}

.nav-logo::before {
  content: "";
  display: block;
  width: 50px;
  height: 40px;
  background-image: url('logo.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.nav-logo {
  font-family: 'Courier New', Courier, monospace;
  font-size: 18px;
  color: var(--oxford-blue);
  text-transform: lowercase;
}

.nav-links { display: flex; gap: 24px; align-items: center; }
.nav-links a { color: var(--slate); font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; text-decoration: none; }
.nav-cta { background: var(--oxford-blue); color: var(--white) !important; padding: 6px 14px; border-radius: var(--r); }

/* ── HEADERS & SECTION LABELS ── */
h1, h2, h3, .section-title {
  font-family: var(--font-header) !important;
  font-weight: 300 !important; 
  font-size: 30px !important;
  color: var(--oxford-blue);
  line-height: 1.2;
  margin-bottom: 12px;
  text-align: left;
}

.section-label {
    letter-spacing: 0.2em; 
    font-weight: 800; 
    color: var(--racing-green);
    border-left: 3px solid var(--racing-green); 
    padding-left: 12px;
    text-transform: uppercase; 
    font-size: 10px; 
    margin-bottom: 16px;
    text-align: left;
    display: block;
}

/* ── CONTENT LAYOUT ── */
.section { padding: 160px 24px 60px; } 
.container { 
  max-width: var(--max-w); 
  margin: 0 auto; 
  text-align: left !important; 
}

/* ── GRID SYSTEM (For Software/Products Page) ── */
.grid-2 {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 60px;
  align-items: start;
}

@media (max-width: 768px) {
  .grid-2 { grid-template-columns: 1fr; gap: 40px; }
}

.pricing-card {
  background: var(--stone);
  padding: 40px;
  border-radius: var(--r);
  border: 1px solid var(--grey-light);
}

/* ── BUTTON STYLES ── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 24px;
  border-radius: var(--r);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  transition: 0.2s;
  cursor: pointer;
  border: none;
}

.btn-primary { 
  background: var(--oxford-blue); 
  color: var(--white) !important; 
}

.btn-outline { 
  background: transparent; 
  border: 1px solid var(--oxford-blue); 
  color: var(--oxford-blue) !important; 
}

/* ── PROSE / LEGAL PAGES ── */
.legal-content {
  max-width: 800px;
  margin: 160px auto 60px; 
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: flex-start; 
}

.legal-content p, .legal-content li, .legal-content div { 
  margin-bottom: 12px;
  font-size: 12px; 
  color: var(--slate); 
  line-height: 1.7; 
  text-align: left !important;
  width: 100%;
}

/* ── FOOTER ── */
footer { padding: 40px 24px; border-top: 1px solid var(--grey-light); }
footer p, footer a, footer li { font-size: 10px !important; color: var(--slate); }
/* ── NAV LINK STYLES (consolidated from per-page inline blocks) ── */
.nav-links { display: flex; align-items: center; gap: 24px; }
.nav-links a { font-family: var(--font-body); text-decoration: none; }
.nav-cta-secondary { color: var(--slate); font-size: 10px; font-weight: 500; letter-spacing: 0.1em; transition: color 0.2s; text-transform: uppercase; }
.nav-cta-secondary:hover { color: var(--oxford-blue); }

/* ── MOBILE NAV ── */
@media (max-width: 600px) {
  .nav-links a:not(.nav-cta) { display: none; }
}

/* ── FOOTER LINK STANDARDISATION ── */
footer a { color: var(--slate); text-decoration: none; }
footer a:hover { color: var(--oxford-blue); }
.footer-logo { font-family: 'Courier New', Courier, monospace; font-size: 18px; font-weight: 700; color: var(--oxford-blue); margin-bottom: 12px; }
.footer-tagline { font-size: 12px; color: var(--slate); max-width: 320px; margin-bottom: 24px; line-height: 1.6; }
.footer-legal { font-size: 10px; color: var(--slate); line-height: 1.6; }
.footer-col-head { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--racing-green); margin-bottom: 16px; font-family: var(--font-body); font-weight: 500; }
.footer-links { list-style: none; font-size: 10px; line-height: 2.2; padding: 0; }
