/* * OSINT Tools - Shared Academic Stylesheet * Brutalist-academic aesthetic inspired by old MIT/academic websites * Georgia serif body, Helvetica headings, classic blue links, tables */ /* Reset & Base */ * { box-sizing: border-box; } body { font-family: Georgia, 'Times New Roman', serif; font-size: 12px; line-height: 1.5; color: #000; background: #fff; max-width: 1000px; margin: 0 auto; padding: 20px; } /* Typography */ h1, h2, h3 { font-family: Helvetica, Arial, sans-serif; font-weight: normal; margin: 0 0 8px 0; } h1 { font-size: 18px; border-bottom: 1px solid #000; padding-bottom: 5px; } h2 { font-size: 14px; margin-top: 15px; } h3 { font-size: 12px; margin-top: 10px; } /* Links */ a { color: #0000EE; } a:visited { color: #551A8B; } /* Horizontal Rule */ hr { border: none; border-top: 1px solid #000; margin: 15px 0; } /* Tables */ table { border-collapse: collapse; width: 100%; margin: 8px 0; font-size: 11px; } th, td { border: 1px solid #000; padding: 4px 8px; text-align: left; vertical-align: top; } th { background: #eee; font-family: Helvetica, Arial, sans-serif; font-weight: normal; } /* Header */ .header { margin-bottom: 15px; } .header-row { display: table; width: 100%; } .header-row > div { display: table-cell; vertical-align: bottom; } .header-row .right { text-align: right; font-family: Helvetica, Arial, sans-serif; font-size: 11px; } .subtitle { color: #666; font-size: 11px; } /* Sections */ .section { margin-bottom: 20px; } /* Tabs Navigation */ .tabs { margin-bottom: 15px; font-family: Helvetica, sans-serif; font-size: 11px; } .tabs a { margin-right: 10px; padding: 3px 8px; border: 1px solid #000; text-decoration: none; color: #000; } .tabs a.active { background: #000; color: #fff; } .tabs a:hover { background: #eee; } /* Buttons */ .btn { font-family: Helvetica, Arial, sans-serif; font-size: 11px; background: #eee; border: 1px solid #000; padding: 4px 10px; cursor: pointer; text-decoration: none; color: #000; display: inline-block; } .btn:hover { background: #ddd; } /* Utility Classes */ .meta { color: #666; font-size: 10px; } .empty { color: #666; font-style: italic; padding: 20px; text-align: center; } /* Source Tags */ .source-tag { display: inline-block; font-family: Helvetica, sans-serif; font-size: 9px; background: #eee; border: 1px solid #999; padding: 1px 4px; margin-right: 5px; } /* Forms */ .search-form { display: flex; gap: 5px; } .search-input { flex: 1; font-family: Georgia, serif; font-size: 12px; border: 1px solid #000; padding: 8px; } .search-input:focus { outline: 1px solid #000; } input, select, textarea { font-family: Georgia, serif; font-size: 11px; border: 1px solid #000; padding: 4px; } /* Filter Chips */ .filter-chip { margin: 0 5px; padding: 2px 8px; border: 1px solid #000; text-decoration: none; color: #000; font-family: Helvetica, sans-serif; font-size: 11px; } .filter-chip:hover { background: #eee; } .filter-chip.active { background: #000; color: #fff; } /* Status Indicators */ .status-healthy { color: #060; } .status-warning { color: #960; } .status-error { color: #900; } .status-banner { padding: 10px; border: 1px solid #000; margin: 15px 0; text-align: center; font-family: Helvetica, sans-serif; } .status-banner.healthy { background: #dfd; } .status-banner.warning { background: #ffd; } .status-banner.error { background: #fdd; } /* Political Party Colors */ .party-dem { color: #009; } .party-rep { color: #c00; } /* Alert Styling */ .alert-item { border-left: 3px solid #990; padding: 5px 10px; margin-bottom: 5px; background: #ffe; font-size: 11px; } .alert-item.max { border-color: #c00; background: #fee; } .alert-item.large { border-color: #090; background: #dfd; } /* API Docs */ .api-docs { margin: 20px 0; padding: 15px; border: 1px solid #000; font-size: 11px; } .api-docs code { font-family: monospace; background: #eee; padding: 2px 4px; } .api-docs pre { font-family: monospace; background: #eee; padding: 10px; overflow-x: auto; margin: 5px 0; }