/* =========================================================
   GEO INC SURVEYORS — MAIN STYLESHEET
   Original theme preserved + Night Mode (glowing green)
   + Full responsive component library
   ========================================================= */

/* ── CSS CUSTOM PROPERTIES ── */
:root {
  --color-primary:      #55c57a;
  --color-primary-dark: #28b485;
  --color-dark:         #1f1f1f;
  --color-darker:       #030303;
  --color-black:        #000;
  --color-white:        #fff;
  --color-grey-light:   #f7f7f7;
  --color-grey:         #777;
  --color-grey-dark:    #333;
  --color-orange:       #f39c12;
  --color-red:          #e74c3c;
  --color-blue:         #2980b9;
  --color-purple:       #8e44ad;

  --bg-body:            #fff;
  --bg-card:            #fff;
  --bg-section:         #f7f7f7;
  --bg-input:           #fff;
  --text-main:          #333;
  --text-muted:         #777;
  --text-heading:       #1f1f1f;
  --border-color:       #e0e0e0;
  --shadow:             0 1rem 3rem rgba(0,0,0,.1);
  --shadow-sm:          0 .5rem 1.5rem rgba(0,0,0,.08);
  --nav-bg:             radial-gradient(#1f1f1f,#030303);

  --glow-green: #00ff88;
  --night-bg: #0d0d0d;
  --night-card: #161616;
  --night-border: #2a2a2a;
  --night-text: #e0e0e0;
  --night-muted: #888;

  --transition: all .25s ease;
  --radius: 1rem;
  --radius-sm: .5rem;
}

/* ── NIGHT MODE ── */
[data-theme="dark"] {
  --bg-body:      var(--night-bg);
  --bg-card:      var(--night-card);
  --bg-section:   #111;
  --bg-input:     #1e1e1e;
  --text-main:    var(--night-text);
  --text-muted:   var(--night-muted);
  --text-heading: var(--night-text);
  --border-color: var(--night-border);
  --shadow:       0 1rem 3rem rgba(0,255,136,.05);
  --shadow-sm:    0 .5rem 1.5rem rgba(0,0,0,.4);
  --nav-bg:       radial-gradient(#0a0a0a,#000);
}

[data-theme="dark"] body { background: var(--bg-body); color: var(--text-main); }
[data-theme="dark"] .heading-secondary {
  background-image: linear-gradient(to right, var(--glow-green), #00cc6a);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 8px rgba(0,255,136,.4));
}
[data-theme="dark"] .section-about,
[data-theme="dark"] .section-tours,
[data-theme="dark"] .section-enroll { background: var(--bg-body); }
[data-theme="dark"] .section-features { background: linear-gradient(to right bottom, #0a0a0a, #111); }
[data-theme="dark"] .feature-box { background: var(--night-card); box-shadow: 0 0 20px rgba(0,255,136,.08); }
[data-theme="dark"] .feature-box:hover { box-shadow: 0 0 30px rgba(0,255,136,.25); }
[data-theme="dark"] .feature-box__icon { color: var(--glow-green) !important; text-shadow: 0 0 12px var(--glow-green); }
[data-theme="dark"] .card { box-shadow: 0 0 20px rgba(0,255,136,.06); }
[data-theme="dark"] .card__side--back { background: linear-gradient(to right bottom, #0a2a1a, #0d1a10) !important; }
[data-theme="dark"] .footer { background: #050505; }
[data-theme="dark"] .form__input {
  background: var(--bg-input);
  color: var(--night-text);
  border-color: var(--night-border);
}
[data-theme="dark"] .form__input:focus {
  border-color: var(--glow-green);
  box-shadow: 0 0 0 3px rgba(0,255,136,.15);
}
[data-theme="dark"] .btn--green {
  background: linear-gradient(135deg, #00ff88, #00cc6a);
  color: #000;
  box-shadow: 0 0 15px rgba(0,255,136,.35);
}
[data-theme="dark"] .btn--green:hover { box-shadow: 0 0 25px rgba(0,255,136,.6); }
[data-theme="dark"] .navigation__background { background: radial-gradient(#0a0a0a,#000); }
[data-theme="dark"] .navigation__link { color: var(--night-text); }
[data-theme="dark"] .navigation__link:hover { color: var(--glow-green); text-shadow: 0 0 8px var(--glow-green); }
[data-theme="dark"] .story { background: var(--night-card); }
[data-theme="dark"] .story__text h3 { color: var(--glow-green); }
[data-theme="dark"] .enroll { background: linear-gradient(105deg, #111 0%, #0a0a0a 50%, var(--night-card) 50%); }
[data-theme="dark"] .night-toggle { background: rgba(0,255,136,.1); border-color: var(--glow-green); color: var(--glow-green); box-shadow: 0 0 12px rgba(0,255,136,.3); }
[data-theme="dark"] .sidebar-card,
[data-theme="dark"] .admin-panel,
[data-theme="dark"] .remark-item,
[data-theme="dark"] .doc-item,
[data-theme="dark"] .project-card { background: var(--night-card); border-color: var(--night-border); }
[data-theme="dark"] .admin-sidebar { background: #080808; border-right: 1px solid #1a1a1a; }
[data-theme="dark"] .admin-topbar { background: var(--night-card); border-bottom: 1px solid var(--night-border); }
[data-theme="dark"] .admin-table { color: var(--night-text); }
[data-theme="dark"] .admin-table thead tr { background: #111; }
[data-theme="dark"] .admin-table tbody tr:hover { background: #1a1a1a; }
[data-theme="dark"] .admin-nav__link:hover,
[data-theme="dark"] .admin-nav__link.active { color: var(--glow-green); background: rgba(0,255,136,.08); }
[data-theme="dark"] .page-hero { background-color: #050505; }
[data-theme="dark"] .filter-bar { background: var(--night-card); border-bottom-color: var(--night-border); }
[data-theme="dark"] .filter-btn { background: #1e1e1e; color: var(--night-text); border-color: var(--night-border); }
[data-theme="dark"] .filter-btn.active,
[data-theme="dark"] .filter-btn:hover { background: var(--glow-green); color: #000; box-shadow: 0 0 10px rgba(0,255,136,.4); }
[data-theme="dark"] .tabs-nav { border-bottom-color: var(--night-border); background: var(--night-card); }
[data-theme="dark"] .tab-btn { color: var(--night-muted); }
[data-theme="dark"] .tab-btn.active { color: var(--glow-green); border-bottom-color: var(--glow-green); }
[data-theme="dark"] .gallery-item:hover .gallery-item__overlay { background: rgba(0,255,136,.15); }
[data-theme="dark"] .lightbox { background: rgba(0,0,0,.97); }
[data-theme="dark"] .stat-card { background: var(--night-card); box-shadow: 0 0 15px rgba(0,255,136,.05); }
[data-theme="dark"] .auth-card { background: var(--night-card); border-color: var(--night-border); box-shadow: 0 0 30px rgba(0,255,136,.1); }
[data-theme="dark"] .modal-box { background: var(--night-card); border: 1px solid var(--night-border); }
[data-theme="dark"] .remark-item--admin { border-left-color: var(--glow-green); background: rgba(0,255,136,.04); }
[data-theme="dark"] .remark-item--update { border-left-color: #f39c12; }
[data-theme="dark"] .badge--admin { background: rgba(0,255,136,.15); color: var(--glow-green); }
[data-theme="dark"] .community-card { background: var(--night-card); }
[data-theme="dark"] .dev-card { background: var(--night-card); }
[data-theme="dark"] .btn--ghost { border-color: var(--night-border); color: var(--night-text); }
[data-theme="dark"] .btn--ghost:hover { border-color: var(--glow-green); color: var(--glow-green); }
[data-theme="dark"] .file-upload-area { border-color: var(--night-border); background: var(--bg-input); color: var(--night-text); }
[data-theme="dark"] .file-upload-area:hover { border-color: var(--glow-green); }
[data-theme="dark"] .icon-btn { color: var(--night-muted); }
[data-theme="dark"] .icon-btn:hover { color: var(--night-text); }

/* ── RESET & BASE ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:inherit; }

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}
@media (max-width:75em)  { html { font-size:56%; } }
@media (max-width:56.25em) { html { font-size:50%; } }
@media (min-width:112.5em) { html { font-size:75%; } }

body {
  font-family:'Lato',sans-serif;
  font-weight:400;
  line-height:1.7;
  color: var(--text-main);
  background: var(--bg-body);
  box-sizing:border-box;
  padding:3rem;
  transition: background .3s ease, color .3s ease;
}
@media (max-width:56.25em) { body { padding:0; } }

::selection { background:#333; color:#fff; }
a { text-decoration:none; color:inherit; }

/* ── NIGHT TOGGLE BUTTON ── */
.night-toggle {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  z-index: 9999;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  border: 2px solid #ccc;
  background: rgba(255,255,255,.9);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  transition: var(--transition);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-sm);
}
.night-toggle:hover { transform: scale(1.1) rotate(15deg); }

/* ── TOAST NOTIFICATIONS ── */
#toast-container {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.toast {
  padding: 1.2rem 2rem;
  border-radius: var(--radius-sm);
  font-size: 1.4rem;
  font-weight: 600;
  min-width: 24rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  animation: slideInRight .3s ease;
  box-shadow: var(--shadow);
  color: #fff;
}
.toast--success { background: #27ae60; }
.toast--error   { background: #e74c3c; }
.toast--info    { background: #2980b9; }
.toast--warning { background: #f39c12; }
@keyframes slideInRight {
  from { transform:translateX(100%); opacity:0; }
  to   { transform:translateX(0);    opacity:1; }
}
@keyframes fadeOut { to { opacity:0; transform:translateX(100%); } }

/* ── TYPOGRAPHY ── */
.heading-primary {
  color:#fff;
  text-transform:uppercase;
  backface-visibility:hidden;
  margin-bottom:5rem;
}
.heading-primary--main {
  display:block;
  font-size:5rem;
  font-weight:300;
  letter-spacing:2rem;
  animation:moveInLeft 2s ease-out;
}
.heading-primary--sub {
  display:block;
  font-size:2rem;
  font-weight:700;
  letter-spacing:1rem;
  animation:moveInRight 2s ease-out;
}
@media (max-width:37.5em) {
  .heading-primary--main { font-size:3rem; letter-spacing:1rem; }
  .heading-primary--sub  { letter-spacing:0; font-weight:300; }
}
.heading-secondary {
  font-size:3.5rem;
  text-transform:uppercase;
  font-weight:400;
  background-image:linear-gradient(to right,#1f1f1f,#030303);
  display:inline-block;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  transition:var(--transition);
  letter-spacing:2px;
}
@media (max-width:56.25em) { .heading-secondary { font-size:3rem; } }
@media (max-width:37.5em)  { .heading-secondary { font-size:2.5rem; } }
.heading-secondary:hover { transform:skewY(2deg) skewX(15deg) scale(1.1); }
.heading-tertiary { font-size:1.6rem; font-weight:700; text-transform:uppercase; }
.paragraph { font-size:1.6rem; }
.paragraph:not(:last-child) { margin-bottom:3rem; }

/* ── UTILITIES ── */
.u-center-text { text-align:center !important; }
.u-margin-bottom-small  { margin-bottom:1.5rem !important; }
.u-margin-bottom-medium { margin-bottom:4rem !important; }
.u-margin-bottom-big    { margin-bottom:8rem !important; }
.u-margin-top-big       { margin-top:8rem !important; }
.u-margin-top-huge      { margin-top:10rem !important; }
@media (max-width:56.25em) {
  .u-margin-bottom-medium { margin-bottom:3rem !important; }
  .u-margin-bottom-big    { margin-bottom:5rem !important; }
}
.text-green  { color:#55c57a; }
.text-orange { color:#f39c12; }
.text-grey   { color:#aaa; }
.text-muted  { color: var(--text-muted); }

/* ── ANIMATIONS ── */
@keyframes moveInLeft {
  0%   { opacity:0; transform:translateX(-10rem); }
  80%  { transform:translateX(1rem); }
  100% { opacity:1; transform:translate(0); }
}
@keyframes moveInRight {
  0%   { opacity:0; transform:translateX(10rem); }
  80%  { transform:translateX(-1rem); }
  100% { opacity:1; transform:translate(0); }
}
@keyframes moveInBottom {
  0%   { opacity:0; transform:translateY(3rem); }
  100% { opacity:1; transform:translate(0); }
}
@keyframes glowPulse {
  0%,100% { box-shadow: 0 0 10px rgba(0,255,136,.3); }
  50%      { box-shadow: 0 0 25px rgba(0,255,136,.7); }
}

/* ── BUTTONS ── */
.btn, .btn:link, .btn:visited {
  text-transform:uppercase;
  text-decoration:none;
  padding:1.5rem 4rem;
  border-radius:10rem;
  display:inline-block;
  transition:var(--transition);
  position:relative;
  font-size:1.6rem;
  border:none;
  cursor:pointer;
  font-family:inherit;
}
.btn:hover { transform:translateY(-.3rem); box-shadow:0 1rem 2rem rgba(0,0,0,.2); }
.btn:active, .btn:focus { transform:translateY(-.1rem); outline:none; }
.btn::after {
  content:'';
  display:inline-block;
  height:100%; width:100%;
  border-radius:10rem;
  position:absolute;
  top:0; left:0;
  z-index:-1;
  transition:var(--transition);
}
.btn:hover::after { transform:scaleX(1.4) scaleY(1.6); opacity:0; }
.btn--white    { background:#fff; color:#777; }
.btn--white::after { background:#fff; }
.btn--green    { background:#333; color:#f7f7f7; }
.btn--green::after { background:#333; }
.btn--danger   { background:#e74c3c; color:#fff; }
.btn--ghost    { background:transparent; border:2px solid var(--border-color); color: var(--text-main); padding:1.3rem 3.8rem; }
.btn--ghost:hover { border-color:#333; }
.btn--sm       { padding:.8rem 2rem; font-size:1.3rem; }
.btn--animated { animation:moveInBottom .5s ease-out .75s both; }
.btn-text {
  font-size:1.6rem;
  font-weight:700;
  color:var(--color-primary-dark);
  border-bottom:1px solid var(--color-primary-dark);
  padding:3px;
  display:inline-block;
  transition:var(--transition);
  background:none; border-top:none; border-left:none; border-right:none; cursor:pointer;
}
.btn-text:hover { background:var(--color-primary-dark); color:#fff; transform:translateY(-.2rem); }

/* ── GRID ── */
.row {
  max-width:114rem;
  margin:0 auto;
}
.row::after { content:''; display:table; clear:both; }
.row [class^="col-"] { float:left; }
.row [class^="col-"]:not(:last-child) { margin-right:6rem; }
.col-1-of-2 { width:calc((100% - 6rem) / 2); }
.col-1-of-3 { width:calc((100% - 2*6rem) / 3); }
.col-2-of-3 { width:calc(2*((100% - 2*6rem) / 3) + 6rem); }
.col-1-of-4 { width:calc((100% - 3*6rem) / 4); }
@media (max-width:56.25em) {
  .row [class^="col-"] { width:100% !important; float:none; margin-right:0 !important; }
  .row [class^="col-"]:not(:last-child) { margin-bottom:3rem; }
}

/* ── NAVIGATION ── */
.navigation__checkbox { display:none; }
.navigation__button {
  background:#fff;
  height:7rem; width:7rem;
  border-radius:50%;
  position:fixed;
  top:3rem; right:3rem;
  z-index:2000;
  box-shadow:0 1rem 3rem rgba(0,0,0,.1);
  text-align:center;
  cursor:pointer;
  transition:var(--transition);
}
@media (max-width:56.25em) { .navigation__button { top:2rem; right:2rem; } }
.navigation__button:hover { background:#f7f7f7; }
.navigation__background {
  height:6rem; width:6rem;
  border-radius:50%;
  position:fixed;
  top:3.5rem; right:3.5rem;
  background: var(--nav-bg);
  z-index:1000;
  transition:transform .8s cubic-bezier(.86,0,.07,1);
}
@media (max-width:56.25em) { .navigation__background { top:2.5rem; right:2.5rem; } }
.navigation__nav {
  height:100vh; width:0;
  position:fixed;
  top:0; right:0;
  z-index:1500;
  opacity:0;
  transition:var(--transition);
  overflow:hidden;
}
.navigation__list { list-style:none; text-align:center; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:100%; }
.navigation__item { margin:1rem; }
.navigation__link:link, .navigation__link:visited {
  font-size:3rem;
  font-weight:300;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.4rem;
  display:inline-block;
  padding:1rem 2rem;
  background-size:220%;
  background-image:linear-gradient(120deg,transparent 0%,transparent 50%,#fff 50%);
  transition:var(--transition);
}
.navigation__link:link span, .navigation__link:visited span { margin-right:1.5rem; }
.navigation__link:hover, .navigation__link:active {
  background-position:100%;
  color:#333;
  transform:translateX(1rem);
}
.navigation__checkbox:checked ~ .navigation__background { transform:scale(80); }
.navigation__checkbox:checked ~ .navigation__nav { width:100%; opacity:1; }
.navigation__icon, .navigation__icon::before, .navigation__icon::after {
  width:3rem; height:2px;
  background-color:#333;
  display:inline-block;
  transition:var(--transition);
}
.navigation__icon {
  position:relative;
  margin-top:3.2rem;
}
.navigation__icon::before, .navigation__icon::after {
  content:'';
  position:absolute;
  left:0;
}
.navigation__icon::before { top:-.8rem; }
.navigation__icon::after  { top:.8rem; }
.navigation__button:hover .navigation__icon::before { top:-1rem; }
.navigation__button:hover .navigation__icon::after  { top:1rem; }
.navigation__checkbox:checked + .navigation__button .navigation__icon { background-color:transparent; }
.navigation__checkbox:checked + .navigation__button .navigation__icon::before { transform:rotate(135deg); top:0; }
.navigation__checkbox:checked + .navigation__button .navigation__icon::after  { transform:rotate(-135deg); top:0; }

/* ── HEADER / HERO ── */
.header {
  height:95vh;
  background-image:linear-gradient(to right bottom,rgba(0,0,0,.6),rgba(0,0,0,.4)),
    url('../img/hero.jpg');
  background-size:cover;
  background-position:top;
  clip-path:polygon(0 0,100% 0,100% 75vh,0 100%);
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
@media (max-width:56.25em) { .header { clip-path:polygon(0 0,100% 0,100% 85vh,0 100%); } }
.header__logo-box { position:absolute; top:4rem; left:4rem; }
.header__logo { height:5rem; }
.header__text-box { text-align:center; }

/* ── PAGE HERO (inner pages) ── */
.page-hero {
  background-image:linear-gradient(to right bottom,rgba(0,0,0,.75),rgba(0,0,0,.5)),
    url('../img/hero-small.jpg');
  background-size:cover;
  background-position:center;
  padding:10rem 4rem 8rem;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.page-hero--sm { padding:7rem 4rem 6rem; }
.page-hero__content .heading-primary { margin-bottom:0; }
.page-main { padding:5rem 3rem; max-width:120rem; margin:0 auto; }

/* ── ABOUT SECTION ── */
.section-about {
  padding:25rem 0;
  background:#fff;
  background:var(--bg-body);
  margin-top:-7rem;
}
@media (max-width:56.25em) { .section-about { padding:20rem 3rem 10rem; } }

/* ── COMPOSITION PHOTOS ── */
.composition { position:relative; }
.composition__photo {
  width:55%;
  box-shadow:0 1.5rem 4rem rgba(0,0,0,.4);
  border-radius:.2rem;
  position:absolute;
  z-index:10;
  transition:var(--transition);
  outline-offset:2rem;
}
@media (max-width:56.25em) { .composition__photo { float:left; position:relative; width:33.3333%; box-shadow:0 1.5rem 3rem rgba(0,0,0,.2); } }
.composition__photo--p1 { left:0; top:-2rem; }
.composition__photo--p2 { right:0; top:2rem; }
.composition__photo--p3 { left:20%; top:10rem; }
.composition__photo:hover { outline:1.5rem solid var(--color-primary); z-index:20; transform:scale(1.05) translateY(-.5rem); box-shadow:0 2.5rem 4rem rgba(0,0,0,.5); }
.composition:hover .composition__photo:not(:hover) { transform:scale(.95); }

/* ── FEATURES SECTION ── */
.section-features {
  padding:20rem 0;
  background:linear-gradient(to right bottom,rgba(0,0,0,.8),rgba(0,0,0,.6)),
    url('../img/hero.jpg');
  background-size:cover;
  transform:skewY(-7deg);
  margin-top:-10rem;
}
.section-features > * { transform:skewY(7deg); }
@media (max-width:56.25em) { .section-features { padding:10rem 3rem; } }
.feature-box {
  background:rgba(255,255,255,.8);
  font-size:1.5rem;
  padding:2.5rem;
  text-align:center;
  border-radius:.3rem;
  box-shadow:var(--shadow);
  transition:var(--transition);
  backdrop-filter:blur(5px);
}
.feature-box:hover { transform:translateY(-1.5rem) scale(1.03); }
@media (max-width:56.25em) { .feature-box { padding:1.5rem; } }
.feature-box__icon {
  font-size:6rem;
  margin-bottom:.5rem;
  display:inline-block;
  background-image:linear-gradient(to right,var(--color-primary),var(--color-primary-dark));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
@media (max-width:56.25em) { .feature-box__icon { font-size:4rem; } }
.feature-box__text { font-size:1.5rem; }

/* ── TOURS / PROJECTS SECTION ── */
.section-tours {
  padding:25rem 0 15rem;
  background:var(--bg-body);
  margin-top:-10rem;
}
@media (max-width:56.25em) { .section-tours { padding:10rem 3rem; } }

/* CARDS */
.card {
  perspective:150rem;
  -moz-perspective:150rem;
  position:relative;
  height:52rem;
}
.card__side {
  height:52rem;
  transition:all .8s ease;
  position:absolute;
  top:0; left:0;
  width:100%;
  backface-visibility:hidden;
  border-radius:.3rem;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.card__side--back { transform:rotateY(180deg); }
.card:hover .card__side--front { transform:rotateY(-180deg); }
.card:hover .card__side--back  { transform:rotateY(0); }
.card__picture {
  background-size:cover;
  height:23rem;
  background-blend-mode:hard-light;
  -webkit-clip-path:polygon(0 0,100% 0,100% 85%,0 100%);
  clip-path:polygon(0 0,100% 0,100% 85%,0 100%);
}
.card__picture--1 { background-image:linear-gradient(to right bottom,rgba(0,0,0,.6),rgba(85,197,122,.6)),url('../img/prep-4.jpg'); }
.card__picture--2 { background-image:linear-gradient(to right bottom,rgba(0,0,0,.6),rgba(40,180,133,.6)),url('../img/prep-5.jpg'); }
.card__picture--3 { background-image:linear-gradient(to right bottom,rgba(0,0,0,.6),rgba(85,197,122,.6)),url('../img/prep-6.jpg'); }
.card__heading {
  font-size:2.8rem;
  font-weight:300;
  text-transform:uppercase;
  text-align:right;
  color:#fff;
  position:absolute;
  top:12rem; right:2rem;
  width:75%;
}
.card__heading-span {
  padding:1rem 1.5rem;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
.card__heading-span--1,
.card__heading-span--2,
.card__heading-span--3 { background:linear-gradient(to right bottom,rgba(0,0,0,.85),rgba(40,180,133,.85)); }
.card__details { padding:3rem; }
.card__details ul { list-style:none; width:80%; margin:0 auto; }
.card__details ul li {
  text-align:center;
  font-size:1.5rem;
  padding:1rem;
}
.card__details ul li:not(:last-child) { border-bottom:1px solid #eee; }
.card__side--back-1,
.card__side--back-2,
.card__side--back-3 { background:linear-gradient(to right bottom,#1f1f1f,#333); }
.card__cta { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:90%; text-align:center; }
.card__price-box { text-align:center; margin-bottom:8rem; color:#fff; }
.card__price-only { font-size:1.4rem; text-transform:uppercase; }
.card__price-value { font-size:6rem; font-weight:100; }

/* ── STORY SECTION ── */
.section-story {
  padding:15rem 0;
  position:relative;
  background:var(--bg-section);
}
@media (max-width:56.25em) { .section-story { padding:10rem 3rem; } }
.story {
  width:75%;
  margin:0 auto;
  box-shadow:var(--shadow);
  background:#fff;
  background:var(--bg-card);
  border-radius:.3rem;
  padding:6rem;
  padding-left:9rem;
  font-size:1.6rem;
  transform:skewX(-12deg);
  transition:var(--transition);
}
.story:not(:last-child) { margin-bottom:8rem; }
.story:hover { transform:skewX(0) scale(1.02); }
.story > * { transform:skewX(12deg); }
@media (max-width:56.25em) { .story { width:100%; padding:4rem; padding-left:7rem; transform:skewX(0); } .story > * { transform:skewX(0); } }
.story__shape {
  width:15rem; height:15rem;
  float:left;
  -webkit-shape-outside:circle(50% at 50% 50%);
  shape-outside:circle(50% at 50% 50%);
  -webkit-clip-path:circle(50% at 50% 50%);
  clip-path:circle(50% at 50% 50%);
  transform:translateX(-3rem) skewX(12deg);
  position:relative;
}
@media (max-width:56.25em) { .story__shape { transform:translateX(-3rem) skewX(0); } }
.story__img { height:100%; transform:translateX(-4rem) scale(1.4); transition:var(--transition); }
.story:hover .story__img { transform:translateX(-4rem) scale(1); filter:blur(3px) brightness(.8); }
.story__caption {
  position:absolute; top:50%; left:50%; transform:translate(-50%,20%);
  color:#fff; font-size:1.7rem; text-align:center;
  opacity:0; transition:var(--transition); text-transform:uppercase;
}
.story:hover .story__caption { opacity:1; transform:translate(-50%,-50%); }
.story__text { transform:skewX(12deg); }
@media (max-width:56.25em) { .story__text { transform:skewX(0); } }
.story__stars { margin-bottom:.5rem; }

/* ── ENROLL SECTION ── */
.section-enroll { padding:15rem 0; }
@media (max-width:56.25em) { .section-enroll { padding:10rem 3rem; } }
.enroll {
  background-image:linear-gradient(105deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.9) 50%,transparent 50%),
    url('../img/prep-10.jpg');
  background-size:cover;
  border-radius:.4rem;
  box-shadow:var(--shadow);
}
.enroll__form { width:50%; padding:6rem; }
@media (max-width:56.25em) { .enroll { background-image:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.9)),url('../img/prep-10.jpg'); } .enroll__form { width:100%; } }

/* ── FORM ── */
.form__group:not(:last-child) { margin-bottom:2rem; }
.form__input {
  font-size:1.5rem;
  font-family:inherit;
  color:inherit;
  padding:1.5rem 2rem;
  border-radius:.2rem;
  background:var(--bg-input);
  border:none;
  border-bottom:3px solid transparent;
  width:100%;
  display:block;
  transition:var(--transition);
  box-shadow:0 1px 3px rgba(0,0,0,.1);
}
.form__input:focus { outline:none; border-bottom:3px solid #55c57a; box-shadow:0 0 0 3px rgba(85,197,122,.15); }
.form__input:focus:invalid { border-bottom:3px solid #e74c3c; }
.form__input::placeholder { color:#999; }
.form__label {
  font-size:1.2rem;
  font-weight:700;
  margin-left:2rem;
  margin-top:.7rem;
  display:block;
  transition:var(--transition);
  color: var(--text-muted);
}
.form__input:placeholder-shown + .form__label { opacity:0; visibility:hidden; transform:translateY(-4rem); }
.form__textarea { resize:vertical; min-height:8rem; }
.form__select { appearance:none; cursor:pointer; }
.form__radio-group { width:49%; display:inline-block; }
.form__radio-input { display:none; }
.form__radio-label { font-size:1.6rem; cursor:pointer; position:relative; padding-left:4.5rem; }
.form__radio-button {
  height:3rem; width:3rem;
  border:5px solid #55c57a;
  border-radius:50%;
  display:inline-block;
  position:absolute;
  left:0; top:-.4rem;
}
.form__radio-button::after {
  content:'';
  display:block;
  height:1.3rem; width:1.3rem;
  border-radius:50%;
  position:absolute;
  top:50%; left:50%; transform:translate(-50%,-50%);
  background:#55c57a;
  opacity:0; transition:var(--transition);
}
.form__radio-input:checked ~ .form__radio-label .form__radio-button::after { opacity:1; }
.form__check-label { font-size:1.5rem; cursor:pointer; display:flex; align-items:center; gap:1rem; }
.form__group--inline { display:flex; align-items:center; }

/* ── POPUP / LIGHTBOX ── */
.popup {
  height:100vh; width:100%;
  position:fixed;
  top:0; left:0;
  background:rgba(0,0,0,.8);
  z-index:9999;
  opacity:0; visibility:hidden;
  transition:var(--transition);
  backdrop-filter:blur(3px);
}
.popup:target { opacity:1; visibility:visible; }
.popup__content {
  position:absolute;
  top:50%; left:50%; transform:translate(-50%,-50%) scale(.5);
  background:#fff;
  border-radius:.3rem;
  box-shadow:var(--shadow);
  display:flex;
  overflow:hidden;
  max-width:90vw;
  transition:all .4s .2s;
}
.popup:target .popup__content { transform:translate(-50%,-50%) scale(1); }
.popup__left { width:33.333%; display:flex; flex-direction:column; }
.popup__right { width:66.667%; padding:3rem 5rem 3rem 0; display:flex; flex-direction:column; justify-content:center; }
.popup__img { display:block; width:100%; flex:1; object-fit:cover; }
.popup__close:link, .popup__close:visited {
  color:#333; position:absolute; top:2.5rem; right:2.5rem;
  font-size:3rem; text-decoration:none; display:inline-block;
  transition:var(--transition); line-height:1;
}
.popup__close:hover { color:#55c57a; }
.popup__text { font-size:1.4rem; margin-bottom:4rem; column-count:2; column-gap:4rem; column-rule:1px solid #eee; hyphens:auto; }
@media (max-width:56.25em) { .popup__content { flex-direction:column; } .popup__left,.popup__right { width:100%; } }

/* ── LIGHTBOX ── */
.lightbox {
  position:fixed; top:0; left:0; width:100%; height:100%;
  background:rgba(0,0,0,.95);
  z-index:99999;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(4px);
}
.lightbox__inner { position:relative; max-width:90vw; max-height:90vh; text-align:center; }
.lightbox__inner img { max-width:100%; max-height:80vh; border-radius:.5rem; }
.lightbox__close {
  position:absolute; top:-4rem; right:0;
  font-size:3rem; color:#fff; background:none; border:none; cursor:pointer;
  transition:var(--transition);
}
.lightbox__close:hover { color:#55c57a; transform:rotate(90deg); }
.lightbox__caption { color:#ccc; font-size:1.4rem; margin-top:1rem; }

/* ── MODAL ── */
.modal-overlay {
  position:fixed; top:0; left:0; width:100%; height:100%;
  background:rgba(0,0,0,.7);
  z-index:99998;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(4px);
}
.modal-box {
  background: var(--bg-card);
  border-radius: var(--radius);
  padding:4rem;
  max-width:50rem;
  width:90%;
  text-align:center;
  box-shadow: var(--shadow);
  animation:fadeInScale .3s ease;
}
.modal-box--wide { max-width:80rem; text-align:left; }
.modal-icon { font-size:4rem; color:#f39c12; margin-bottom:1.5rem; }
.modal-title { font-size:2rem; font-weight:700; margin-bottom:1rem; color:var(--text-main); }
.modal-msg { font-size:1.5rem; color:var(--text-muted); margin-bottom:3rem; }
.modal-actions { display:flex; gap:1rem; justify-content:center; }
.modal-close {
  position:absolute; top:1.5rem; right:2rem;
  font-size:2.5rem; color:var(--text-muted); background:none; border:none; cursor:pointer;
}
.modal-content-body { padding:2rem 0; font-size:1.6rem; line-height:1.8; }
@keyframes fadeInScale {
  from { opacity:0; transform:scale(.8); }
  to   { opacity:1; transform:scale(1); }
}

/* ── FOOTER ── */
.footer {
  background:#333;
  padding:10rem 0;
  font-size:1.4rem;
  color:#f7f7f7;
}
@media (max-width:56.25em) { .footer { padding:8rem 3rem; } }
.footer__logo-box { text-align:center; margin-bottom:8rem; }
.footer__logo-img { width:15rem; filter:brightness(1); }
.footer__navigation { border-top:1px solid #777; padding-top:2rem; display:inline-block; }
@media (max-width:56.25em) { .footer__navigation { width:100%; } }
.footer__list { list-style:none; display:flex; flex-wrap:wrap; gap:1rem; }
.footer__item a { display:inline-flex; align-items:center; gap:.5rem; }
.footer__link:link, .footer__link:visited { color:#f7f7f7; text-decoration:none; text-transform:uppercase; transition:var(--transition); display:inline-block; }
.footer__link:hover { color:#55c57a; transform:rotate(5deg) scale(1.3); }
.footer__copyright { border-top:1px solid #777; padding-top:2rem; width:80%; float:right; line-height:2; }
@media (max-width:56.25em) { .footer__copyright { width:100%; float:none; } }
.footer__copy-bottom { text-align:center; margin-top:4rem; color:#aaa; font-size:1.2rem; padding-top:2rem; border-top:1px solid #555; }

/* ── BADGES ── */
.badge {
  display:inline-block;
  padding:.3rem 1rem;
  border-radius:2rem;
  font-size:1.1rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
}
.badge--ongoing   { background:#fff3cd; color:#856404; }
.badge--completed { background:#d4edda; color:#155724; }
.badge--planned   { background:#d1ecf1; color:#0c5460; }
.badge--admin     { background:#e8d5f7; color:#6f42c1; }
.badge--client    { background:#d4edda; color:#155724; }
.badge--public    { background:#d4edda; color:#155724; }
.badge--private   { background:#f8d7da; color:#721c24; }
.badge--green     { background:#d4edda; color:#155724; }
.badge--grey      { background:#e2e3e5; color:#495057; }
.badge--blue      { background:#cce5ff; color:#004085; }
.badge--update    { background:#fff3cd; color:#856404; }
[data-theme="dark"] .badge--completed { background:rgba(85,197,122,.15); color:#55c57a; }
[data-theme="dark"] .badge--ongoing   { background:rgba(243,156,18,.15); color:#f39c12; }
[data-theme="dark"] .badge--planned   { background:rgba(41,128,185,.15); color:#2980b9; }

/* ── PROJECT CARD (list page) ── */
.projects-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(30rem,1fr));
  gap:3rem;
  padding:0 2rem;
}
.project-card {
  background: var(--bg-card);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
  border: 1px solid var(--border-color);
}
.project-card:hover { transform:translateY(-5px); box-shadow: var(--shadow); }
.project-card__img { position:relative; height:22rem; overflow:hidden; }
.project-card__img img { width:100%; height:100%; object-fit:cover; transition:var(--transition); }
.project-card:hover .project-card__img img { transform:scale(1.08); }
.project-card__status {
  position:absolute; top:1rem; right:1rem;
  font-size:1.1rem;
}
.project-card__body { padding:2rem; }
.project-card__cat { font-size:1.2rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; }
.project-card__title { font-size:2rem; font-weight:700; margin:.8rem 0; color: var(--text-main); }
.project-card__loc { font-size:1.3rem; color:var(--text-muted); margin-bottom:1rem; }
.project-card__desc { font-size:1.4rem; color:var(--text-muted); margin-bottom:1.5rem; }
.project-card__meta { display:flex; gap:2rem; font-size:1.3rem; color:var(--text-muted); }

/* ── FILTER BAR ── */
.filter-bar {
  background: var(--bg-card);
  border-bottom:1px solid var(--border-color);
  padding:1.5rem 0;
  position:sticky; top:0; z-index:100;
  box-shadow: var(--shadow-sm);
}
.filter-bar__inner { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.filter-bar__label { font-size:1.4rem; font-weight:700; color:var(--text-muted); white-space:nowrap; }
.filter-bar__btns  { display:flex; flex-wrap:wrap; gap:.8rem; }
.filter-btn {
  padding:.6rem 1.5rem;
  border-radius:2rem;
  font-size:1.3rem;
  border:1px solid var(--border-color);
  background: var(--bg-input);
  color: var(--text-main);
  cursor:pointer;
  transition:var(--transition);
  text-decoration:none;
  display:inline-flex; align-items:center; gap:.5rem;
}
.filter-btn:hover, .filter-btn.active { background:#333; color:#fff; border-color:#333; }

/* ── TABS ── */
.tabs-container { margin-top:2rem; }
.tabs-nav {
  display:flex;
  flex-wrap:wrap;
  border-bottom:2px solid var(--border-color);
  background: var(--bg-card);
  border-radius: var(--radius) var(--radius) 0 0;
  padding:0 1rem;
  gap:.5rem;
}
.tab-btn {
  padding:1.5rem 2.5rem;
  border:none;
  background:none;
  font-size:1.5rem;
  font-weight:600;
  cursor:pointer;
  color: var(--text-muted);
  border-bottom:3px solid transparent;
  margin-bottom:-2px;
  transition:var(--transition);
  display:flex; align-items:center; gap:.8rem;
  font-family:inherit;
}
.tab-btn:hover { color: var(--text-main); }
.tab-btn.active { color:#333; border-bottom-color:#333; }
.tab-panel { display:none; padding:3rem; background: var(--bg-card); border:1px solid var(--border-color); border-top:none; border-radius:0 0 var(--radius) var(--radius); }
.tab-panel.active { display:block; }

/* ── GALLERY ── */
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));
  gap:1.5rem;
}
.gallery-grid--admin { margin-top:2rem; }
.gallery-item {
  position:relative;
  border-radius: var(--radius-sm);
  overflow:hidden;
  cursor:pointer;
  aspect-ratio:4/3;
}
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:var(--transition); }
.gallery-item:hover img { transform:scale(1.1); }
.gallery-item__overlay {
  position:absolute; top:0; left:0; width:100%; height:100%;
  background:rgba(0,0,0,.5);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  opacity:0; transition:var(--transition);
  color:#fff;
  gap:.5rem;
}
.gallery-item:hover .gallery-item__overlay { opacity:1; }
.gallery-item__overlay i { font-size:2.5rem; }
.gallery-item__overlay span { font-size:1.2rem; text-align:center; padding:0 1rem; }
.gallery-preview-row { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1rem; }
.gallery-preview-item { width:8rem; height:8rem; border-radius:.5rem; overflow:hidden; border:2px solid #55c57a; }
.gallery-preview-item img { width:100%; height:100%; object-fit:cover; }

/* ── DOCUMENT LIST ── */
.doc-list { display:flex; flex-direction:column; gap:1.5rem; }
.doc-item {
  display:flex; align-items:center; gap:2rem;
  padding:1.5rem 2rem;
  background: var(--bg-card);
  border-radius: var(--radius-sm);
  border:1px solid var(--border-color);
  box-shadow: var(--shadow-sm);
  transition:var(--transition);
}
.doc-item:hover { transform:translateX(4px); box-shadow: var(--shadow); }
.doc-item__icon { font-size:3rem; flex-shrink:0; }
.doc-item__info { flex:1; }
.doc-item__info strong { display:block; font-size:1.5rem; }
.doc-item__info small { color:var(--text-muted); font-size:1.2rem; }
.doc-item__info p { font-size:1.3rem; color:var(--text-muted); margin-top:.3rem; }

/* ── REMARKS ── */
.remark-form { margin-bottom:3rem; }
.remarks-list { display:flex; flex-direction:column; gap:1.5rem; }
.remark-item {
  padding:2rem;
  background: var(--bg-card);
  border-radius: var(--radius-sm);
  border:1px solid var(--border-color);
  border-left:4px solid var(--border-color);
}
.remark-item--admin { border-left-color:#55c57a; }
.remark-item--update { border-left-color:#f39c12; background:rgba(243,156,18,.04); }
.remark-item__header { display:flex; align-items:center; gap:1.5rem; margin-bottom:1rem; flex-wrap:wrap; }
.remark-item__avatar {
  width:3.5rem; height:3.5rem;
  border-radius:50%;
  background:#333;
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
  flex-shrink:0;
}
.remark-item__header strong { font-size:1.5rem; }
.remark-item__header small { color:var(--text-muted); font-size:1.2rem; }
.remark-item__content { font-size:1.5rem; color:var(--text-main); white-space:pre-wrap; }

/* ── SIDEBAR CARDS ── */
.sidebar-card {
  background: var(--bg-card);
  border:1px solid var(--border-color);
  border-radius: var(--radius);
  padding:2rem;
  margin-bottom:2rem;
  box-shadow: var(--shadow-sm);
}
.sidebar-card__title { font-size:1.6rem; font-weight:700; margin-bottom:1.5rem; display:flex; align-items:center; gap:.8rem; }
.sidebar-card__stat { font-size:1.4rem; color:var(--text-muted); margin-bottom:1.5rem; }
.sidebar-card__stat strong { font-size:2.5rem; color:var(--text-main); }
.sidebar-facts { list-style:none; font-size:1.4rem; display:flex; flex-direction:column; gap:1rem; }
.sidebar-facts li { display:flex; align-items:center; gap:1rem; color:var(--text-muted); }
.sidebar-facts li strong { color:var(--text-main); margin-left:auto; }
.sidebar-facts li i { width:1.5rem; }
.share-btns { display:flex; gap:1rem; }
.share-btn {
  width:4rem; height:4rem;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem;
  border:none; cursor:pointer; transition:var(--transition);
  color:#fff;
}
.share-btn--twitter  { background:#1da1f2; }
.share-btn--whatsapp { background:#25d366; }
.share-btn--copy     { background:#777; }
.share-btn:hover { transform:scale(1.15); box-shadow:0 4px 12px rgba(0,0,0,.2); }

/* ── INFO GRID ── */
.info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(18rem,1fr)); gap:1.5rem; margin-bottom:3rem; }
.info-item { display:flex; align-items:center; gap:1.5rem; padding:1.5rem; background:var(--bg-section); border-radius: var(--radius-sm); }
.info-item__icon { font-size:2.5rem; color:#55c57a; width:3rem; flex-shrink:0; }
.info-item small { display:block; font-size:1.1rem; color:var(--text-muted); text-transform:uppercase; }
.info-item strong { display:block; font-size:1.5rem; }
.content-block { margin-bottom:3rem; padding:2rem; background:var(--bg-section); border-radius: var(--radius-sm); }

/* ── AUTH PAGES ── */
.auth-page {
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#1f1f1f,#030303);
  padding:3rem;
}
.auth-card {
  background: var(--bg-card);
  border-radius: var(--radius);
  padding:4rem;
  width:100%;
  max-width:48rem;
  box-shadow:0 2rem 6rem rgba(0,0,0,.3);
  border:1px solid var(--border-color);
}
.auth-card__header { text-align:center; margin-bottom:3rem; }
.auth-card__logo { height:6rem; margin-bottom:2rem; }
.auth-card__header h2 { font-size:2.5rem; margin-bottom:.5rem; }
.auth-card__header p { color:var(--text-muted); font-size:1.5rem; }
.auth-form .form__group { margin-bottom:2.5rem; }
.auth-card__footer { text-align:center; margin-top:2rem; font-size:1.4rem; color:var(--text-muted); }
.auth-card__footer a { color:#55c57a; font-weight:700; }

/* ── PROFILE ── */
.follow-list { list-style:none; display:flex; flex-direction:column; gap:1rem; }
.follow-list__item { display:flex; align-items:center; gap:1rem; font-size:1.5rem; padding:1rem; border-radius:.5rem; background:var(--bg-section); }
.follow-list__item a { color:#55c57a; font-weight:600; }

/* ── COMMUNITY CARDS ── */
.community-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(30rem,1fr)); gap:3rem; padding:0 2rem; }
.community-card { background: var(--bg-card); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm); border:1px solid var(--border-color); transition:var(--transition); }
.community-card:hover { transform:translateY(-5px); box-shadow: var(--shadow); }
.community-card__img-wrap { height:20rem; overflow:hidden; position:relative; }
.community-card__img { width:100%; height:100%; object-fit:cover; }
.community-card__avatar { height:100%; background:linear-gradient(135deg,#1f1f1f,#333); display:flex; align-items:center; justify-content:center; font-size:6rem; color:#777; }
.community-card__body { padding:2.5rem; }
.community-card__stars { margin-bottom:1rem; }
.community-card__quote { font-size:1.5rem; font-style:italic; line-height:1.8; margin-bottom:2rem; color:var(--text-main); }
.community-card__author strong { display:block; font-size:1.6rem; }
.community-card__author small { color:var(--text-muted); font-size:1.3rem; }
.community-card__author em { display:block; font-size:1.3rem; color:#55c57a; }

/* ── DEVELOPMENTS ── */
.dev-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(35rem,1fr)); gap:3rem; padding:0 2rem; }
.dev-card { background: var(--bg-card); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm); border:1px solid var(--border-color); transition:var(--transition); }
.dev-card:hover { transform:translateY(-5px); box-shadow: var(--shadow); }
.dev-card__img { height:22rem; overflow:hidden; }
.dev-card__img img { width:100%; height:100%; object-fit:cover; transition:var(--transition); }
.dev-card:hover .dev-card__img img { transform:scale(1.08); }
.dev-card__body { padding:2.5rem; }
.dev-card__cat { font-size:1.2rem; color:var(--text-muted); text-transform:uppercase; }
.dev-card__title { font-size:2rem; font-weight:700; margin:1rem 0; }
.dev-card__summary { font-size:1.4rem; color:var(--text-muted); margin-bottom:1rem; }
.dev-card__content { font-size:1.5rem; line-height:1.8; }
.dev-card__footer { display:flex; justify-content:space-between; align-items:center; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--border-color); }

/* ── EMPTY STATE ── */
.empty-state { text-align:center; padding:8rem 3rem; color:var(--text-muted); }
.empty-state__icon { font-size:6rem; display:block; margin-bottom:2rem; opacity:.3; }
.empty-state h3 { font-size:2rem; margin-bottom:1rem; }
.empty-state p { font-size:1.5rem; margin-bottom:2rem; }

/* ── PROJECT BADGE ── */
.project-badge { display:inline-block; padding:.4rem 1.2rem; border-radius:2rem; font-size:1.2rem; font-weight:700; margin-bottom:1rem; }
.project-badge--ongoing   { background:#f39c12; color:#fff; }
.project-badge--completed { background:#27ae60; color:#fff; }
.project-badge--planned   { background:#2980b9; color:#fff; }

/* ── LOGIN PROMPT ── */
.login-prompt { text-align:center; padding:3rem; background:var(--bg-section); border-radius: var(--radius-sm); margin-bottom:2rem; }
.login-prompt i { font-size:3rem; margin-bottom:1rem; color:var(--text-muted); display:block; }
.login-prompt a { color:#55c57a; font-weight:700; }

/* ── ICON BUTTONS ── */
.icon-btn {
  background:none; border:none; cursor:pointer;
  width:3.5rem; height:3.5rem;
  border-radius: var(--radius-sm);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:1.5rem;
  transition:var(--transition);
  color: var(--text-muted);
  text-decoration:none;
}
.icon-btn:hover { background:var(--bg-section); color: var(--text-main); }
.icon-btn--edit:hover { color:#2980b9; }
.icon-btn--danger:hover { color:#e74c3c; background:rgba(231,76,60,.1); }

/* ── FILE UPLOAD AREA ── */
.file-upload-area {
  border:2px dashed var(--border-color);
  border-radius: var(--radius);
  padding:3rem;
  text-align:center;
  cursor:pointer;
  transition:var(--transition);
  position:relative;
  background: var(--bg-section);
}
.file-upload-area:hover { border-color:#55c57a; background:rgba(85,197,122,.05); }
.file-upload-area i { font-size:4rem; color:var(--text-muted); display:block; margin-bottom:1rem; }
.file-upload-area p { font-size:1.5rem; color:var(--text-muted); }
.file-upload-area small { font-size:1.2rem; color:#aaa; }
.file-upload-area input[type="file"] { position:absolute; top:0; left:0; width:100%; height:100%; opacity:0; cursor:pointer; }

/* ── RESPONSIVE HELPERS ── */
@media (max-width:56.25em) {
  .projects-grid { grid-template-columns:1fr 1fr; }
  .community-grid { grid-template-columns:1fr; }
  .dev-grid { grid-template-columns:1fr; }
  .info-grid { grid-template-columns:1fr 1fr; }
  .tabs-nav { overflow-x:auto; }
  .tab-btn { padding:1.2rem 1.5rem; font-size:1.3rem; }
  .sidebar-card { margin-top:3rem; }
}
@media (max-width:37.5em) {
  .projects-grid { grid-template-columns:1fr; }
  .info-grid { grid-template-columns:1fr; }
  .modal-actions { flex-direction:column; }
  .filter-bar__inner { flex-direction:column; align-items:flex-start; }
}
