/* StarPunk CSS - Minimal responsive stylesheet */ :root { --color-text: #333; --color-text-light: #666; --color-bg: #fff; --color-bg-alt: #f5f5f5; --color-link: #0066cc; --color-link-hover: #004499; --color-border: #ddd; --color-success: #28a745; --color-error: #dc3545; --color-warning: #ffc107; --color-info: #17a2b8; --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif; --font-mono: 'SF Mono', Monaco, Consolas, 'Courier New', monospace; --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 2rem; --spacing-xl: 4rem; --max-width: 42rem; --border-radius: 4px; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-body); font-size: 1rem; line-height: 1.6; color: var(--color-text); background: var(--color-bg); padding: var(--spacing-md); } h1, h2, h3 { margin-bottom: var(--spacing-md); line-height: 1.2; font-weight: 600; } h1 { font-size: 2rem; } h2 { font-size: 1.5rem; } h3 { font-size: 1.25rem; } p { margin-bottom: var(--spacing-md); } a { color: var(--color-link); text-decoration: none; } a:hover { color: var(--color-link-hover); text-decoration: underline; } code, pre { font-family: var(--font-mono); background: var(--color-bg-alt); padding: 0.125rem 0.25rem; border-radius: var(--border-radius); font-size: 0.875rem; } pre { padding: var(--spacing-md); overflow-x: auto; margin-bottom: var(--spacing-md); } header, main, footer { max-width: var(--max-width); margin: 0 auto; } header { margin-bottom: var(--spacing-lg); padding-bottom: var(--spacing-md); border-bottom: 2px solid var(--color-border); } header h1 { margin-bottom: var(--spacing-sm); } header h1 a { color: var(--color-text); text-decoration: none; } nav { display: flex; gap: var(--spacing-md); flex-wrap: wrap; } nav a { padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--border-radius); transition: background 0.2s; } nav a:hover { background: var(--color-bg-alt); text-decoration: none; } main { min-height: 60vh; margin-bottom: var(--spacing-lg); } footer { padding-top: var(--spacing-lg); border-top: 1px solid var(--color-border); text-align: center; color: var(--color-text-light); font-size: 0.875rem; } .dev-mode-warning { background: var(--color-error); color: white; padding: var(--spacing-md); text-align: center; font-weight: bold; margin: calc(-1 * var(--spacing-md)); margin-bottom: var(--spacing-lg); } .flash { padding: var(--spacing-md); border-radius: var(--border-radius); margin-bottom: var(--spacing-md); border-left: 4px solid; } .flash-success { background: #d4edda; border-color: var(--color-success); color: #155724; } .flash-error { background: #f8d7da; border-color: var(--color-error); color: #721c24; } .flash-warning { background: #fff3cd; border-color: var(--color-warning); color: #856404; } .flash-info { background: #d1ecf1; border-color: var(--color-info); color: #0c5460; } .h-entry { margin-bottom: var(--spacing-lg); padding-bottom: var(--spacing-lg); border-bottom: 1px solid var(--color-border); } .h-entry:last-child { border-bottom: none; } .note-preview .e-content { margin-bottom: var(--spacing-md); } .note-meta { color: var(--color-text-light); font-size: 0.875rem; } .note-meta a { color: var(--color-text-light); } .note-nav { margin-top: var(--spacing-md); } .empty-state { text-align: center; padding: var(--spacing-xl); color: var(--color-text-light); } .form-group { margin-bottom: var(--spacing-md); } label { display: block; margin-bottom: var(--spacing-sm); font-weight: 600; } input[type="text"], input[type="url"], input[type="email"], textarea { width: 100%; padding: var(--spacing-sm); border: 1px solid var(--color-border); border-radius: var(--border-radius); font-family: inherit; font-size: 1rem; } textarea { font-family: var(--font-mono); resize: vertical; min-height: 10rem; } small { display: block; margin-top: var(--spacing-xs); color: var(--color-text-light); font-size: 0.875rem; } .form-checkbox { display: flex; align-items: center; gap: var(--spacing-sm); } .form-checkbox input[type="checkbox"] { width: auto; margin: 0; } .form-checkbox label { margin: 0; font-weight: normal; } .form-actions { display: flex; gap: var(--spacing-md); margin-top: var(--spacing-lg); } .button { display: inline-block; padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--color-border); border-radius: var(--border-radius); background: var(--color-bg); color: var(--color-text); font-family: inherit; font-size: 1rem; cursor: pointer; text-decoration: none; transition: all 0.2s; } .button:hover { background: var(--color-bg-alt); text-decoration: none; } .button-primary { background: var(--color-link); color: white; border-color: var(--color-link); } .button-primary:hover { background: var(--color-link-hover); border-color: var(--color-link-hover); } .button-secondary { background: var(--color-bg-alt); } .button-danger { background: var(--color-error); color: white; border-color: var(--color-error); } .button-danger:hover { background: #c82333; border-color: #c82333; } .button-warning { background: var(--color-warning); color: #333; border-color: var(--color-warning); } .button-small { padding: 0.25rem 0.5rem; font-size: 0.875rem; } .admin-container { max-width: 60rem; } .admin-nav { display: flex; gap: var(--spacing-md); padding: var(--spacing-md); background: var(--color-bg-alt); border-radius: var(--border-radius); margin-bottom: var(--spacing-lg); flex-wrap: wrap; align-items: center; } .admin-nav .logout-form { margin-left: auto; } .admin-nav .logout-form button { margin: 0; } .admin-content { margin-bottom: var(--spacing-lg); } .user-identity { color: var(--color-text-light); font-size: 0.875rem; margin-bottom: var(--spacing-md); } .dashboard-actions { margin-bottom: var(--spacing-md); } .note-table { width: 100%; border-collapse: collapse; margin-top: var(--spacing-md); } .note-table th, .note-table td { padding: var(--spacing-md); text-align: left; border-bottom: 1px solid var(--color-border); } .note-table th { background: var(--color-bg-alt); font-weight: 600; } .note-content-preview { max-width: 30rem; } .note-excerpt { margin-bottom: var(--spacing-xs); } .note-slug { color: var(--color-text-light); font-family: var(--font-mono); font-size: 0.75rem; } .note-date { white-space: nowrap; color: var(--color-text-light); } .note-actions { white-space: nowrap; } .note-actions .button { margin-right: var(--spacing-sm); } .note-actions .delete-form { display: inline; } .status-badge { display: inline-block; padding: 0.25rem 0.5rem; border-radius: var(--border-radius); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } .status-published { background: #d4edda; color: var(--color-success); } .status-draft { background: #f8d7da; color: var(--color-error); } .login-container { max-width: 30rem; margin: 0 auto; padding: var(--spacing-lg); } .login-form { margin: var(--spacing-lg) 0; } .dev-login-option { margin-top: var(--spacing-lg); padding-top: var(--spacing-lg); border-top: 1px solid var(--color-border); } .dev-warning { color: var(--color-error); font-weight: 600; text-align: center; } .login-help { margin-top: var(--spacing-xl); padding-top: var(--spacing-lg); border-top: 1px solid var(--color-border); } .login-help h3 { font-size: 1rem; margin-bottom: var(--spacing-sm); } .note-editor { max-width: 50rem; } .note-editor .note-meta { margin-bottom: var(--spacing-md); } @media (min-width: 768px) { body { padding: var(--spacing-lg); } h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } h3 { font-size: 1.5rem; } } @media (max-width: 767px) { .note-table { font-size: 0.875rem; } .note-table th, .note-table td { padding: var(--spacing-sm); } .note-actions .button { font-size: 0.75rem; padding: 0.25rem 0.5rem; } .admin-nav { flex-direction: column; align-items: stretch; } .admin-nav .logout-form { margin-left: 0; } }