:root {
    --forest:    #1a3326;
    --deep:      #0f1f17;
    --moss:      #2e5c3e;
    --sage:      #4a7c5f;
    --fern:      #6aaa80;
    --mist:      #3a3a3a;
    --cream:     #f5f0e8;
    --gold:      #c8a94a;
    --amber:     #e8c66a;
    --rust:      #9b4b1a;
    --bark:      #5a3820;
    --white:     #fdfcf8;
    --border:    rgba(46,92,62,0.2);
    --shadow:    rgba(15,31,23,0.15);
    --r:         10px;
  }
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  body {
    background-color: #f0ede6;
    color: #2a2a2a;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 17px;
    line-height: 1.65;
    min-height: 100vh;
    background-image:
      url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%234a7c5f' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }
  /* HEADER */
  .site-header { background: linear-gradient(135deg,var(--deep),var(--forest)); border-bottom: 2px solid var(--gold); padding: 0 2rem; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 100; box-shadow: 0 4px 24px var(--shadow); }
  .logo-area { display: flex; align-items: center; gap: 1rem; padding: .75rem 0; }
  .logo-bird { width:48px;height:48px;background:radial-gradient(circle at 35% 40%,var(--fern),var(--moss));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;border:2px solid var(--gold);box-shadow:0 0 12px rgba(200,169,74,.3);flex-shrink:0; }
  .logo-text h1 { font-family:'Playfair Display',serif;font-size:1rem;font-weight:700;color:var(--white);line-height:1.2; }
  .logo-text p { font-size:.7rem;color:var(--fern);font-family:'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase; }
  .header-badge { background:linear-gradient(135deg,var(--gold),var(--amber));color:var(--deep);font-family:'DM Mono',monospace;font-size:.62rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .85rem;border-radius:30px;display:flex;align-items:center;gap:.4rem; }
  .header-badge::before { content:'🔒'; font-size:.75rem; }
  /* FORMS */
  .form-group { margin-bottom:1.4rem; }
  .form-group label { display:block;font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mist);margin-bottom:.4rem; }
  .form-group input, .form-group select, .form-group textarea { width:100%;background:#ffffff;border:1px solid rgba(46,92,62,0.25);border-radius:8px;color:#2a2a2a;font-family:'Crimson Pro',serif;font-size:1rem;padding:.7rem 1rem;outline:none;transition:border-color .2s,box-shadow .2s; }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--fern);box-shadow:0 0 0 3px rgba(106,170,128,.2); }
  .form-group textarea { resize:vertical;min-height:80px; }
  /* BUTTONS */
  .btn { display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.75rem;border-radius:8px;font-family:'DM Mono',monospace;font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:none;transition:all .2s;text-decoration:none; }
  .btn-primary { background:linear-gradient(135deg,var(--moss),var(--sage));color:var(--white);width:100%;padding:.9rem;font-size:.85rem;box-shadow:0 4px 16px rgba(46,92,62,.4); }
  .btn-primary:hover { background:linear-gradient(135deg,var(--sage),var(--fern));transform:translateY(-1px); }
  .btn-outline { background:transparent;border:1px solid var(--border);color:var(--fern); }
  .btn-outline:hover { border-color:var(--fern);color:var(--fern); }
  .btn-sm { padding:.4rem .85rem;font-size:.7rem; }
  /* LOGIN */
  #login-screen,#register-screen { min-height:calc(100vh - 72px);display:flex;align-items:center;justify-content:center;padding:3rem 1rem; }
  .login-card { background:linear-gradient(160deg,rgba(46,92,62,.35),rgba(15,31,23,.8));border:1px solid var(--border);border-radius:20px;padding:3.5rem;width:100%;max-width:440px;backdrop-filter:blur(12px);box-shadow:0 24px 64px var(--shadow);position:relative;overflow:hidden; }
  .login-card { background:#ffffff;border:1px solid rgba(46,92,62,0.2);border-radius:20px;padding:3.5rem;width:100%;max-width:440px;box-shadow:0 8px 40px rgba(0,0,0,0.1);position:relative;overflow:hidden; }
.login-title { font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;color:var(--forest);margin-bottom:.35rem; }
.login-subtitle { color:var(--sage);font-size:.95rem;margin-bottom:2.5rem;font-style:italic; }
  .login-divider { text-align:center;margin:1.5rem 0;color:var(--sage);font-size:.85rem;font-style:italic;position:relative; }
  .login-divider::before,.login-divider::after { content:'';position:absolute;top:50%;width:35%;height:1px;background:var(--border); }
  .login-divider::before { left:0; } .login-divider::after { right:0; }
  /* PORTAL */
  #portal-screen { display:none; }
  .portal-layout { display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 72px); }
  /* SIDEBAR */
  .sidebar { background:linear-gradient(180deg,rgba(26,51,38,.95),rgba(15,31,23,.98));border-right:1px solid var(--border);padding:2rem 0;position:sticky;top:72px;height:calc(100vh - 72px);overflow-y:auto; }
  .sidebar-user { padding:0 1.5rem 1.5rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem; }
  .user-avatar { width:52px;height:52px;background:radial-gradient(circle at 40% 35%,var(--fern),var(--forest));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;border:2px solid var(--gold);margin-bottom:.65rem; }
  .user-name { font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--white);margin-bottom:.2rem; }
  .membership-badge { display:inline-flex;align-items:center;gap:.3rem;font-family:'DM Mono',monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .6rem;border-radius:20px;margin-bottom:.4rem; }
  .badge-active { background:rgba(106,170,128,.2);color:var(--fern);border:1px solid rgba(106,170,128,.3); }
  .badge-expired { background:rgba(155,75,26,.2);color:#e87a3a;border:1px solid rgba(155,75,26,.3); }
  .expiry-text { font-size:.78rem;color:rgba(255,255,255,0.45);font-style:italic; }
  .nav-section { padding:0 .75rem;margin-bottom:.5rem; }
 .nav-label { font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.35);padding:0 .75rem;margin-bottom:.4rem; }
  .nav-item { display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:8px;cursor:pointer;transition:all .18s;color:var(--white);font-size:.95rem;border:1px solid transparent; }
  .nav-item:hover { background:rgba(106,170,128,.08);color:var(--fern);border-color:var(--border); }
  .nav-item.active { background:rgba(106,170,128,.15);color:var(--fern);border-color:rgba(106,170,128,.3); }
  .nav-icon { font-size:1.1rem;width:1.5rem;text-align:center; }
  /* MAIN */
  .main-content { padding:2.5rem 3rem;overflow-y:auto; background:#f0ede6; }
  .section-title { font-family:'Playfair Display',serif;font-size:2.2rem;font-weight:700;color:var(--forest);margin-bottom:.4rem; }
  .section-title span { color:var(--moss); }
  .section-desc { color:var(--sage);font-style:italic;font-size:1.05rem;margin-bottom:2rem; }
  .panel { display:none; } .panel.active { display:block; }
  /* CARDS */
  .card { background:#ffffff;border:1px solid rgba(46,92,62,0.2);border-radius:var(--r);padding:1.75rem;margin-bottom:1.5rem; box-shadow:0 2px 12px rgba(0,0,0,0.06); }
  .card h3 { font-family:'Playfair Display',serif;font-size:1.25rem;color:var(--forest);margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid rgba(46,92,62,0.15); }
  .info-grid { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
  .info-field label { display:block;font-family:'DM Mono',monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);margin-bottom:.3rem; }
  .info-field .value { color:#2a2a2a; }
  .info-field.full { grid-column:1/-1; }
  /* STATUS */
  .membership-status-card { background:linear-gradient(135deg,#e8f5ee,#f0f7f2);border:1px solid rgba(46,92,62,0.25);border-radius:var(--r);padding:2rem;margin-bottom:2rem;display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:center;box-shadow:0 2px 12px rgba(0,0,0,0.06); }
  .status-circle { width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;border:3px solid; }
  .status-circle.active { border-color:var(--fern);background:rgba(106,170,128,.15);box-shadow:0 0 24px rgba(106,170,128,.3); }
  .status-circle.expired { border-color:#e87a3a;background:rgba(155,75,26,.15);box-shadow:0 0 24px rgba(155,75,26,.3); }
  .status-label.active { color:var(--fern); } .status-label.expired { color:#e87a3a; }
  .status-label { font-family:'DM Mono',monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;margin-top:.4rem; }
  /* PAYPAL */
  .paypal-section { background:linear-gradient(135deg,#fffbf0,#fff8e6);border:1px solid rgba(200,169,74,.4);border-radius:var(--r);padding:1.75rem;margin-bottom:1.5rem;box-shadow:0 2px 12px rgba(200,169,74,0.1); }
  .paypal-section h3 { font-family:'Playfair Display',serif;font-size:1.25rem;color:#8a6a1a;margin-bottom:.5rem; }
  .paypal-section p { color:#666;font-size:.95rem;margin-bottom:1.25rem; }
  .paypal-btn { display:inline-flex;align-items:center;gap:.6rem;background:#003087;color:white;padding:.75rem 1.75rem;border-radius:8px;font-family:'DM Mono',monospace;font-size:.8rem;font-weight:500;letter-spacing:.06em;cursor:pointer;border:none;transition:all .2s; }
  .paypal-btn:hover { background:#00246a;transform:translateY(-1px); }
  .paypal-logo { font-size:1.1rem;font-weight:700;font-style:italic;font-family:Arial,sans-serif; }
  .paypal-logo .pay { color:#009cde; } .paypal-logo .pal { color:#012169; }
  /* FORUM */
 .forum-tabs { display:flex;gap:.5rem;margin-bottom:1.75rem;background:#e4e0d8;padding:.4rem;border-radius:10px;border:1px solid rgba(46,92,62,0.2); }
  .forum-tab { flex:1;text-align:center;padding:.6rem 1rem;border-radius:7px;cursor:pointer;font-family:'DM Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sage);transition:all .2s;border:1px solid transparent; }
  .forum-tab:hover { color:var(--forest);background:rgba(255,255,255,0.6); }
  .forum-tab.active { background:#ffffff;color:var(--moss);border-color:rgba(46,92,62,0.2);box-shadow:0 1px 4px rgba(0,0,0,0.08); }
  .forum-category-desc { font-style:italic;color:var(--sage);font-size:.92rem;margin-bottom:1.5rem;padding:.75rem 1rem;background:#eaf3ee;border-left:3px solid var(--fern);border-radius:0 6px 6px 0; }
  .forum-post { background:#ffffff;border:1px solid rgba(46,92,62,0.18);border-radius:var(--r);padding:1.25rem 1.5rem;margin-bottom:.85rem;transition:all .2s;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,0.05); }
  .forum-post:hover { border-color:var(--fern);box-shadow:0 4px 16px rgba(46,92,62,0.12); }
  .post-header { display:flex;align-items:flex-start;gap:1rem;margin-bottom:.5rem; }
  .post-avatar { width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;flex-shrink:0;border:1px solid rgba(46,92,62,0.2);background:#eaf3ee;color:var(--moss); }
  .post-meta { flex:1; }
  .post-title { font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--forest);margin-bottom:.15rem; }
  .post-info { font-size:.78rem;color:var(--sage);display:flex;gap:1rem;flex-wrap:wrap; }
  .post-excerpt { color:#555;font-size:.92rem;line-height:1.5;margin-top:.5rem; }
  .new-post-form { background:#ffffff;border:1px solid rgba(46,92,62,0.18);border-radius:var(--r);padding:1.75rem;margin-bottom:2rem;box-shadow:0 2px 8px rgba(0,0,0,0.05); }
  .new-post-form h4 { font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--forest);margin-bottom:1.25rem; }
  /* PHOTOS */
 .upload-zone { border:2px dashed rgba(46,92,62,.35);border-radius:var(--r);padding:3rem;text-align:center;cursor:pointer;transition:all .2s;background:#f7f9f7;margin-bottom:1.5rem; }
  .upload-zone:hover,.upload-zone.drag-over { border-color:var(--fern);background:rgba(106,170,128,.08); }
  .upload-icon { font-size:3rem;margin-bottom:1rem; }
 .upload-title { font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--forest);margin-bottom:.4rem; }
  .upload-subtitle { color:var(--sage);font-size:.9rem;font-style:italic; }
  .upload-preview { display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap; }
  .preview-thumb { width:100px;height:100px;border-radius:8px;overflow:hidden;border:2px solid var(--border);position:relative; }
  .preview-thumb img { width:100%;height:100%;object-fit:cover; }
  .preview-thumb .remove { position:absolute;top:4px;right:4px;width:22px;height:22px;background:rgba(155,75,26,.8);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.7rem;color:white;border:none; }
  .bird-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
  .bird-form-grid .full { grid-column:1/-1; }
  .submission-card { background:#ffffff;border:1px solid rgba(46,92,62,0.18);border-radius:var(--r);padding:1.25rem;display:grid;grid-template-columns:100px 1fr;gap:1.25rem;margin-bottom:1rem;box-shadow:0 2px 8px rgba(0,0,0,0.05); }
  .submission-thumb { width:100px;aspect-ratio:1;border-radius:8px;overflow:hidden;border:2px solid rgba(46,92,62,0.15);background:#eaf3ee;display:flex;align-items:center;justify-content:center;font-size:2rem; }
  .submission-thumb img { width:100%;height:100%;object-fit:cover; }
  .submission-info h4 { font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--forest);margin-bottom:.35rem; }
  .meta-chip { font-family:'DM Mono',monospace;font-size:.65rem;letter-spacing:.06em;padding:.2rem .55rem;background:#eaf3ee;border:1px solid rgba(46,92,62,0.2);border-radius:20px;color:var(--moss);display:inline-flex;align-items:center;gap:.3rem;margin:.15rem; }
  .status-dot { display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:.35rem; }
  .dot-pending { background:var(--gold); } .dot-approved { background:var(--fern); } .dot-published { background:var(--amber); }
  /* ALERTS */
  .alert { padding:.85rem 1.2rem;border-radius:8px;margin-bottom:1.2rem;font-size:.92rem;display:flex;align-items:flex-start;gap:.65rem; }
  .alert-success { background:#eaf3ee;border:1px solid rgba(106,170,128,.4);color:#2a5c3a; }
.alert-warning { background:#fdf8e6;border:1px solid rgba(200,169,74,.4);color:#7a5c10; }
.alert-error   { background:#fdf0ea;border:1px solid rgba(155,75,26,.4);color:#7a3010; }
  /* MODAL */
  .modal-overlay { position:fixed;inset:0;background:rgba(10,20,14,.85);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1.5rem;display:none; }
  .modal-overlay.open { display:flex; }
  .modal { background:#ffffff;border:1px solid rgba(46,92,62,0.2);border-radius:16px;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:0 32px 80px rgba(0,0,0,.2); }
  .modal-header { padding:1.5rem 2rem 1rem;border-bottom:1px solid rgba(46,92,62,0.15);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;position:sticky;top:0;background:#ffffff;z-index:1; }
  .modal-header h3 { font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--forest); }
  .modal-close { background:rgba(255,255,255,.08);border:1px solid var(--border);color:var(--mist);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;flex-shrink:0;transition:background .2s; }
  .modal-close:hover { background:rgba(255,255,255,.15); }
  .modal-body { padding:1.5rem 2rem 2rem; }
  .reply { padding:1rem 1.25rem;background:#f7f9f7;border-radius:8px;margin-bottom:.75rem;border:1px solid rgba(46,92,62,0.15); }
  .reply-header { display:flex;align-items:center;gap:.65rem;margin-bottom:.5rem; }
  .reply-avatar { width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;background:rgba(46,92,62,.5);border:1px solid var(--border);color:var(--fern); }
  .reply-author { font-weight:600;color:var(--forest);font-size:.9rem; }
  .reply-date { color:var(--sage);font-size:.78rem;font-style:italic; }
  .reply-body { color:#444;font-size:.95rem;line-height:1.6; }
  .divider { height:1px;background:var(--border);margin:1.5rem 0; }
  .empty-state { text-align:center;padding:3rem 2rem;color:#888;font-style:italic; }
  .empty-state .empty-icon { font-size:3rem;margin-bottom:1rem;opacity:.5; }
  .spinner { display:inline-block;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:var(--fern);border-radius:50%;animation:spin .6s linear infinite; }
  @keyframes spin { to { transform:rotate(360deg); } }
  @keyframes fadeIn { from{opacity:0} to{opacity:1} }
  @keyframes slideUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
  ::-webkit-scrollbar { width:6px; } ::-webkit-scrollbar-track { background:transparent; } ::-webkit-scrollbar-thumb { background:var(--moss);border-radius:3px; }
  input[type="file"] { display:none; }
  select option { background:var(--forest);color:var(--white); }
  @media (max-width:900px) { .portal-layout{grid-template-columns:1fr} .sidebar{position:static;height:auto} .info-grid,.bird-form-grid{grid-template-columns:1fr} .membership-status-card{grid-template-columns:1fr} .main-content{padding:1.5rem} }