/* --- Variables copied from FormCraft --- */ :root { --color-bg: #f7f7f7; --color-surface: #ffffff; --color-primary: #3a4750; /* Dark grayish blue */ --color-secondary: #d8d8d8; /* Light gray */ --color-accent: #b06f42; /* Warm wood/leather brown */ --color-text: #2d3436; /* Dark gray */ --color-text-light: #636e72; /* Medium gray */ --color-border: #e0e0e0; /* Light border gray */ --color-success: #2e7d32; /* Green */ --color-success-bg: #e8f5e9; --color-error: #a94442; /* Red for errors */ --color-error-bg: #f2dede; --color-danger: #e74c3c; /* Red for danger buttons */ --color-danger-hover: #c0392b; --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.05); --border-radius: 6px; } /* --- Global Reset & Body Styles --- */ * { margin: 0; padding: 0; box-sizing: border-box; font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } body { background-color: var(--color-bg); color: var(--color-text); line-height: 1.6; min-height: 100vh; display: flex; /* Helps with potential footer later */ flex-direction: column; } /* --- Container --- */ .container { max-width: 900px; /* Adjusted width for simpler content */ width: 100%; margin: 0 auto; padding: 32px 24px; /* Add padding like main content */ } .page-container { flex: 1; /* Make container take available space if using flex on body */ } /* --- Typography --- */ h1, h2, h3 { color: var(--color-primary); margin-bottom: 16px; line-height: 1.3; } h1.page-title { font-size: 1.75rem; font-weight: 600; margin-bottom: 24px; text-align: center; /* Center main title */ } h2.section-title { font-size: 1.25rem; font-weight: 600; border-bottom: 1px solid var(--color-border); padding-bottom: 8px; margin-bottom: 20px; } h3.card-title { font-size: 1.1rem; font-weight: 600; color: var(--color-primary); margin-bottom: 16px; } p { margin-bottom: 16px; color: var(--color-text-light); } p:last-child { margin-bottom: 0; } hr.divider { border: 0; height: 1px; background: var(--color-border); margin: 32px 0; } /* --- Content Card / Section Styling --- */ .content-card, .section { background-color: var(--color-surface); padding: 24px; margin-bottom: 24px; border: 1px solid var(--color-border); border-radius: var(--border-radius); box-shadow: var(--shadow-sm); } .admin-header p { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0; color: var(--color-text); font-weight: 500; } .admin-header span { font-weight: 600; color: var(--color-primary); } /* --- Forms --- */ form .form-group { margin-bottom: 16px; } /* For side-by-side input and button */ form .inline-form-group { display: flex; gap: 10px; align-items: flex-start; /* Align items to top */ } form .inline-form-group input { flex-grow: 1; /* Allow input to take available space */ margin-bottom: 0; /* Remove bottom margin */ } form .inline-form-group button { flex-shrink: 0; /* Prevent button from shrinking */ } label { display: block; margin-bottom: 6px; font-weight: 500; font-size: 0.9rem; color: var(--color-text-light); } input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="number"], textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--color-border); border-radius: var(--border-radius); font-size: 0.95rem; color: var(--color-text); transition: border-color 0.2s ease, box-shadow 0.2s ease; } input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="number"]:focus, textarea:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 2px rgba(176, 111, 66, 0.2); /* Accent focus ring */ } textarea { min-height: 80px; resize: vertical; } /* Styling for dynamically generated public form fields */ #public-form div { margin-bottom: 16px; /* Keep consistent spacing */ } /* Specific styles for checkboxes */ #public-form input[type="checkbox"] { width: auto; /* Override 100% width */ margin-right: 10px; vertical-align: middle; /* Align checkbox nicely with label text */ margin-bottom: 0; /* Remove bottom margin if label handles spacing */ } #public-form input[type="checkbox"] + label, /* Style label differently if needed when next to checkbox */ #public-form label input[type="checkbox"] /* Style if checkbox is inside label */ { display: inline-flex; /* Or inline-block */ align-items: center; margin-bottom: 0; /* Prevent double margin */ font-weight: normal; /* Checkboxes often have normal weight labels */ color: var(--color-text); } /* --- Buttons --- */ .button { background-color: var(--color-primary); color: white; border: 1px solid transparent; /* Add border for consistency */ padding: 10px 18px; border-radius: var(--border-radius); font-weight: 500; font-size: 0.9rem; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.2s ease; text-decoration: none; line-height: 1.5; vertical-align: middle; /* Align with text/inputs */ } .button:hover { background-color: #2c373f; /* Slightly darker hover */ box-shadow: var(--shadow-sm); } .button:active { background-color: #1e2a31; /* Even darker active state */ } .button-secondary { background-color: var(--color-surface); color: var(--color-primary); border: 1px solid var(--color-border); } .button-secondary:hover { background-color: #f8f8f8; /* Subtle hover for secondary */ border-color: #d0d0d0; } .button-secondary:active { background-color: #f0f0f0; } .button-danger { background-color: var(--color-danger); border-color: var(--color-danger); } .button-danger:hover { background-color: var(--color-danger-hover); border-color: var(--color-danger-hover); } .button-danger:active { background-color: #a52e22; /* Even darker red */ } /* Smaller button variant for lists? */ .button-sm { padding: 5px 10px; font-size: 0.8rem; } /* Ensure buttons added by JS (like submit in public form) get styled */ #public-form button[type="submit"] { /* Inherit .button styles if possible, otherwise redefine */ background-color: var(--color-primary); color: white; border: 1px solid transparent; padding: 10px 18px; border-radius: var(--border-radius); font-weight: 500; font-size: 0.9rem; cursor: pointer; transition: all 0.2s ease; line-height: 1.5; margin-top: 10px; /* Add some space above submit */ } #public-form button[type="submit"]:hover { background-color: #2c373f; box-shadow: var(--shadow-sm); } #public-form button[type="submit"]:active { background-color: #1e2a31; } /* --- Lists (Forms & Submissions) --- */ ul.styled-list { list-style: none; padding: 0; margin-top: 20px; /* Space below heading/button */ } ul.styled-list li { background-color: #fcfcfc; /* Slightly off-white */ border: 1px solid var(--color-border); padding: 12px 16px; margin-bottom: 8px; border-radius: var(--border-radius); display: flex; justify-content: space-between; align-items: center; transition: background-color 0.2s ease; font-size: 0.95rem; } ul.styled-list li:hover { background-color: #f5f5f5; } ul.styled-list li button { margin-left: 16px; /* Space between text and button */ /* Use smaller button style */ padding: 5px 10px; font-size: 0.8rem; /* Inherit base button colors or use secondary */ background-color: var(--color-surface); color: var(--color-primary); border: 1px solid var(--color-border); } ul.styled-list li button:hover { background-color: #f8f8f8; border-color: #d0d0d0; } /* Specific styling for submissions list items */ ul.submissions li { display: block; /* Allow pre tag to format */ background-color: var(--color-surface); /* White background for submissions */ } ul.submissions li pre { white-space: pre-wrap; /* Wrap long lines */ word-wrap: break-word; /* Break long words */ background-color: #f9f9f9; /* Light grey background for code block */ padding: 10px; border-radius: var(--border-radius); border: 1px solid var(--color-border); font-size: 0.85rem; color: var(--color-text); max-height: 200px; /* Limit height */ overflow-y: auto; /* Add scroll if needed */ } /* --- Status Area --- */ .status { padding: 12px 16px; margin-bottom: 20px; border-radius: var(--border-radius); font-weight: 500; border: 1px solid transparent; display: none; /* Hide by default, JS shows it */ } .status.success, .status.error { display: block; /* Show when class is added */ } .status.success { background-color: var(--color-success-bg); color: var(--color-success); border-color: var(--color-success); /* Darker green border */ } .status.error { background-color: var(--color-error-bg); color: var(--color-error); border-color: var(--color-error); /* Darker red border */ white-space: pre-wrap; /* Allow multi-line errors */ } /* --- Utility --- */ .hidden { display: none !important; /* Use !important to override potential inline styles if needed */ } /* --- Responsive Adjustments (Basic) --- */ @media (max-width: 768px) { .container { padding: 24px 16px; } h1.page-title { font-size: 1.5rem; } h2.section-title { font-size: 1.15rem; } ul.styled-list li { flex-direction: column; align-items: flex-start; gap: 8px; } ul.styled-list li button { margin-left: 0; align-self: flex-end; /* Move button to bottom right */ } form .inline-form-group { flex-direction: column; align-items: stretch; /* Make elements full width */ } form .inline-form-group button { width: 100%; /* Make button full width */ } } @media (max-width: 576px) { .content-card, .section { padding: 16px; } .button { padding: 8px 14px; font-size: 0.85rem; } }