:root{--bg:#0b1220;--card:#0f172a;--muted:#94a3b8;--text:#e2e8f0;--accent:#60a5fa;--primary:#2563eb;--secondary:#8b5cf6;--border:#1f2a44}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Arial}
header.top{position:sticky;top:0;background:#0b1220;border-bottom:1px solid var(--border);padding:10px 16px;display:flex;gap:16px;align-items:center}
.nav a{color:#93c5fd;margin-right:10px;text-decoration:none}.nav a:hover{text-decoration:underline}
.ver{margin-left:auto;opacity:.6}
main.card{max-width:1080px;margin:24px auto;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
h1,h3{margin:8px 0 12px}
.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;margin:8px 0;color:var(--muted);font-weight:600}
input,select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#0b1324;color:var(--text)}
.btn{background:#2563eb;border:0;color:#fff;border-radius:10px;padding:10px 14px;margin-top:8px;cursor:pointer}
.btn.secondary{background:#334155}
.tbl{border-collapse:collapse;width:100%;margin-top:6px}.tbl th,.tbl td{border:1px solid var(--border);padding:8px 10px;text-align:left}
.error{background:#7f1d1d;color:#fde2e2;border:1px solid #b91c1c;padding:10px;border-radius:10px;margin-bottom:12px}
.gridwrap{border:1px solid var(--border);border-radius:12px;padding:8px;display:inline-block;background:#0b1324}
.gridimg{max-width:100%;height:auto;display:block}
.export form{display:inline-block;margin-right:10px}

/* Mobile Responsive Styles */
@media (max-width: 768px) {
  /* Fix two-column grids to single column on mobile */
  .grid.two {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  
  /* Touch-friendly button sizing */
  .btn {
    min-height: 44px;
    min-width: 44px;
    padding: 12px 16px;
    font-size: 16px;
    touch-action: manipulation;
  }
  
  /* Mobile-friendly form inputs */
  input, select {
    font-size: 16px; /* Prevents zoom on iOS */
    padding: 12px 14px;
    min-height: 44px;
  }
  
  /* Responsive main container */
  main.card {
    margin: 12px;
    padding: 16px;
    max-width: none;
  }
  
  /* Mobile typography */
  body {
    font-size: 14px;
  }
  
  h1, h3 {
    font-size: 1.25rem;
  }
  
  /* Table wrapper for horizontal scrolling */
  .mobile-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--border);
    border-radius: 10px;
  }
  
  .mobile-table-wrapper .tbl {
    border: none;
    min-width: 500px;
  }
  
  /* Mobile navigation improvements */
  header.top {
    flex-wrap: wrap;
    padding: 8px 12px;
    gap: 8px;
  }
  
  .nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
  }
  
  .nav a {
    padding: 8px 12px;
    margin-right: 0;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 14px;
  }
  
  /* Mobile-friendly labels */
  label {
    font-size: 16px;
    margin-bottom: 8px;
  }
  
  /* Touch feedback */
  .btn:active,
  button:active,
  input:focus,
  select:focus {
    transform: scale(0.98);
    transition: transform 0.1s ease;
  }
  
  /* Prevent horizontal overflow */
  * {
    max-width: 100%;
  }
  
  /* Mobile-friendly sections */
  section {
    margin-bottom: 20px;
  }
  
  /* Better spacing on small screens */
  .grid.two > * {
    margin-bottom: 16px;
  }
  
  /* Larger tap targets for checkboxes */
  input[type="checkbox"] {
    transform: scale(1.5);
    margin-right: 10px;
  }
}
