diff --git a/admin/index.php b/admin/index.php index 84a369d..63de448 100644 --- a/admin/index.php +++ b/admin/index.php @@ -57,191 +57,6 @@ if (!$announcement) { -
diff --git a/admin/login.php b/admin/login.php index f36619e..28d9612 100644 --- a/admin/login.php +++ b/admin/login.php @@ -25,102 +25,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { - - +
diff --git a/styles.css b/styles.css
index ca7600f..b0ff288 100644
--- a/styles.css
+++ b/styles.css
@@ -870,4 +870,262 @@
transform: none;
transition: none;
}
+ }
+
+ /* ---------- admin / management styles ---------- */
+ .admin-login-body {
+ min-height: 100vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 1.5rem;
+ }
+
+ .login-card {
+ background: var(--surface);
+ border: 1px solid var(--rule);
+ border-radius: 0.25rem;
+ padding: 2.5rem 2rem;
+ width: 100%;
+ max-width: 25rem;
+ box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.4);
+ }
+
+ .login-header {
+ text-align: center;
+ margin-bottom: 2rem;
+ }
+
+ .login-header img {
+ width: 2rem;
+ height: 2rem;
+ margin: 0 auto 0.75rem;
+ }
+
+ .login-header h1 {
+ font-size: 1.5rem;
+ color: var(--gold-bright);
+ }
+
+ .login-header p {
+ font-family: 'IBM Plex Mono', monospace;
+ font-size: 0.72rem;
+ letter-spacing: 0.15em;
+ text-transform: uppercase;
+ color: var(--ink-muted);
+ margin-top: 0.35rem;
+ }
+
+ .form-group {
+ margin-bottom: 1.25rem;
+ }
+
+ .form-group.full-width {
+ grid-column: 1 / -1;
+ }
+
+ .form-group label {
+ display: block;
+ font-family: 'IBM Plex Mono', monospace;
+ font-size: 0.75rem;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: var(--gold);
+ margin-bottom: 0.45rem;
+ }
+
+ .form-control,
+ .form-input {
+ width: 100%;
+ background: var(--ground-2);
+ border: 1px solid var(--rule);
+ color: var(--ink);
+ font-family: 'Karla', sans-serif;
+ font-size: 0.95rem;
+ padding: 0.7rem 0.85rem;
+ border-radius: 0.125rem;
+ box-sizing: border-box;
+ outline: none;
+ transition: border-color .15s ease;
+ }
+
+ .form-control:focus,
+ .form-input:focus {
+ border-color: var(--gold-bright);
+ }
+
+ textarea.form-control {
+ resize: vertical;
+ min-height: 5.5rem;
+ line-height: 1.5;
+ }
+
+ .error-msg,
+ .alert-error {
+ background: rgba(180, 50, 40, 0.15);
+ border: 1px solid rgba(220, 80, 60, 0.4);
+ color: #ff9d9d;
+ padding: 0.85rem 1.1rem;
+ font-size: 0.88rem;
+ border-radius: 0.125rem;
+ margin-bottom: 1.25rem;
+ }
+
+ .alert-success {
+ background: rgba(51, 80, 63, 0.25);
+ border: 1px solid var(--green);
+ color: #bbf7d0;
+ padding: 0.9rem 1.25rem;
+ border-radius: 0.125rem;
+ margin-bottom: 1.5rem;
+ }
+
+ .login-btn {
+ width: 100%;
+ justify-content: center;
+ margin-top: 0.5rem;
+ cursor: pointer;
+ }
+
+ .back-link {
+ display: block;
+ text-align: center;
+ margin-top: 1.5rem;
+ font-family: 'IBM Plex Mono', monospace;
+ font-size: 0.75rem;
+ color: var(--ink-muted);
+ text-decoration: none;
+ }
+
+ .back-link:hover {
+ color: var(--gold-bright);
+ }
+
+ .admin-nav {
+ background: var(--ground-2);
+ border-bottom: 1px solid var(--rule);
+ padding: 0.85rem 0;
+ }
+
+ .admin-nav-inner {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+
+ .admin-brand {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ text-decoration: none;
+ font-family: 'Fraunces', serif;
+ font-size: 1.15rem;
+ color: var(--ink);
+ }
+
+ .admin-user {
+ display: flex;
+ align-items: center;
+ gap: 1.25rem;
+ font-family: 'IBM Plex Mono', monospace;
+ font-size: 0.82rem;
+ color: var(--ink-muted);
+ }
+
+ .admin-user a {
+ color: var(--gold-bright);
+ text-decoration: none;
+ }
+
+ .admin-user a:hover {
+ text-decoration: underline;
+ }
+
+ .dashboard-layout {
+ padding-block: 2.5rem 4rem;
+ }
+
+ .dash-header {
+ margin-bottom: 2rem;
+ }
+
+ .dash-header h1 {
+ font-size: 2rem;
+ color: var(--ink);
+ }
+
+ .panel {
+ background: var(--surface);
+ border: 1px solid var(--rule);
+ border-radius: 0.25rem;
+ padding: 2rem;
+ margin-bottom: 2rem;
+ }
+
+ .panel h2 {
+ font-size: 1.35rem;
+ color: var(--gold-bright);
+ margin-bottom: 1.25rem;
+ display: flex;
+ align-items: center;
+ gap: 0.6rem;
+ }
+
+ .form-grid {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 1.5rem;
+ }
+
+ @media (max-width: 47.5em) {
+ .form-grid {
+ grid-template-columns: 1fr;
+ }
+ }
+
+ .checkbox-group {
+ display: flex;
+ flex-direction: column;
+ gap: 0.75rem;
+ margin-top: 0.5rem;
+ }
+
+ .checkbox-label {
+ display: flex;
+ align-items: center;
+ gap: 0.6rem;
+ font-size: 0.92rem;
+ color: var(--ink);
+ cursor: pointer;
+ }
+
+ .checkbox-label input[type="checkbox"] {
+ width: 1.15rem;
+ height: 1.15rem;
+ accent-color: var(--gold);
+ cursor: pointer;
+ }
+
+ .status-badge {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.4rem;
+ font-family: 'IBM Plex Mono', monospace;
+ font-size: 0.72rem;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ padding: 0.25rem 0.6rem;
+ border-radius: 0.125rem;
+ }
+
+ .status-badge.active {
+ background: rgba(51, 80, 63, 0.4);
+ border: 1px solid var(--green);
+ color: #9fe2bf;
+ }
+
+ .status-badge.inactive {
+ background: rgba(138, 115, 74, 0.2);
+ border: 1px solid var(--rule);
+ color: var(--ink-muted);
}
\ No newline at end of file