
/* ============================================================
   VARIABLES CORPORATIVAS AMC
   ============================================================ */
.amc-intranet-app {
  --color-primary:        #1a6b3a;
  --color-primary-dark:   #0f4524;
  --color-primary-light:  #2e9c55;
  --color-secondary:      #f0c040;
  --color-bg:             #f4f6f5;
  --color-bg-sidebar:     #0f2d1a;
  --color-surface:        #ffffff;
  --color-text:           #1c2b22;
  --color-text-muted:     #6b7d73;
  --color-border:         #d6e2da;
  --color-danger:         #c0392b;
  --color-success:        #27ae60;
  --color-warning:        #e67e22;
  --color-info:           #2980b9;
  --radius-sm:            6px;
  --radius-md:            12px;
  --radius-lg:            20px;
  --shadow-sm:            0 2px 8px rgba(15,69,36,0.08);
  --shadow-md:            0 6px 24px rgba(15,69,36,0.14);
  --shadow-lg:            0 16px 48px rgba(15,69,36,0.18);
  --font-display:         'Playfair Display', Georgia, serif;
  --font-body:            'DM Sans', 'Segoe UI', sans-serif;
  --transition:           all 0.25s cubic-bezier(.4,0,.2,1);
  all: initial;
  display: block;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--color-text);
  box-sizing: border-box;
}
.amc-intranet-app *, .amc-intranet-app *::before, .amc-intranet-app *::after {
  box-sizing: border-box; margin: 0; padding: 0;
}
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:wght@600;700&display=swap');

/* ============================================================
   LOGIN
   ============================================================ */
.amc-login-screen {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background-color:#0a1f12; background-image:var(--bg-login-url);
  background-size:cover; background-position:center; background-repeat:no-repeat;
  position:relative; overflow:hidden; padding:24px;
}
.amc-login-screen::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(10,31,18,.82),rgba(15,69,36,.65) 50%,rgba(26,74,40,.70));
  pointer-events:none; z-index:0;
}
.amc-login-screen::after {
  content:''; position:absolute; width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle,rgba(240,192,64,.08),transparent 70%);
  bottom:-150px; left:-100px; pointer-events:none; z-index:0;
  animation:amc-float 8s ease-in-out infinite;
}
@keyframes amc-float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-15px)} }
@keyframes amc-fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes amc-fadeIn { from{opacity:0} to{opacity:1} }
@keyframes amc-spin { to{transform:rotate(360deg)} }

.amc-login-card {
  background:rgba(255,255,255,.92); backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4); border-radius:var(--radius-lg);
  padding:48px 40px; width:100%; max-width:420px;
  box-shadow:0 16px 48px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.1);
  position:relative; z-index:1; animation:amc-fadeUp .6s ease both;
  border:1px solid rgba(255,255,255,.25);
}
.amc-login-logo-wrap { text-align:center; margin-bottom:32px; }
.amc-login-logo-wrap img { max-width:180px; max-height:80px; object-fit:contain; display:inline-block; }
.amc-login-logo-fallback { display:inline-flex; flex-direction:column; align-items:center; gap:8px; }
.amc-login-logo-fallback .amc-logo-icon { width:64px;height:64px; background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light)); border-radius:var(--radius-md); display:flex;align-items:center;justify-content:center; font-size:28px; box-shadow:0 4px 16px rgba(26,107,58,.3); }
.amc-login-logo-fallback .amc-logo-text { font-family:var(--font-display); font-size:22px; font-weight:700; color:var(--color-primary-dark); }
.amc-login-logo-fallback .amc-logo-sub { font-size:11px; color:var(--color-text-muted); letter-spacing:1.5px; text-transform:uppercase; margin-top:-4px; }
.amc-login-title { font-family:var(--font-display); font-size:24px; font-weight:700; color:var(--color-primary-dark); text-align:center; margin-bottom:6px; }
.amc-login-subtitle { font-size:13px; color:var(--color-text-muted); text-align:center; margin-bottom:32px; }
.amc-form-group { margin-bottom:18px; }
.amc-form-group label { display:block; font-size:13px; font-weight:600; color:var(--color-text); margin-bottom:7px; }
.amc-form-group input { width:100%; padding:12px 16px; border:1.5px solid var(--color-border); border-radius:var(--radius-sm); font-family:var(--font-body); font-size:14px; color:var(--color-text); background:#fafcfb; outline:none; transition:var(--transition); }
.amc-form-group input:focus { border-color:var(--color-primary-light); box-shadow:0 0 0 3px rgba(46,156,85,.15); background:#fff; }
.amc-form-group input::placeholder { color:#b0bdb5; }
.amc-btn-login { width:100%; padding:14px; background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light)); color:#fff; border:none; border-radius:var(--radius-sm); font-family:var(--font-body); font-size:15px; font-weight:600; cursor:pointer; transition:var(--transition); margin-top:8px; position:relative; overflow:hidden; }
.amc-btn-login:hover { background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary)); box-shadow:var(--shadow-md); transform:translateY(-1px); }
.amc-btn-login:active { transform:translateY(0); }
.amc-btn-login.amc-loading { pointer-events:none; opacity:.8; }
.amc-btn-login .amc-spinner { display:inline-block; width:16px;height:16px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:amc-spin .7s linear infinite; vertical-align:middle; margin-right:8px; }
.amc-login-error { background:#fdf0ef; border:1px solid #f5c6c2; color:var(--color-danger); border-radius:var(--radius-sm); padding:11px 14px; font-size:13px; margin-top:14px; display:none; }
.amc-login-error.amc-visible { display:block; }
.amc-login-footer { text-align:center; margin-top:24px; font-size:12px; color:var(--color-text-muted); }
.amc-login-private-badge { display:inline-flex; align-items:center; gap:6px; background:rgba(15,69,36,.06); border:1px solid var(--color-border); padding:6px 14px; border-radius:20px; font-size:11px; color:var(--color-text-muted); margin-top:12px; }

/* ============================================================
   DASHBOARD LAYOUT
   ============================================================ */
.amc-dashboard { display:none; height:100vh; overflow:hidden; background:var(--color-bg); flex-direction:row; }
.amc-dashboard.amc-active { display:flex; }
.amc-sidebar { width:260px; min-width:260px; background:var(--color-bg-sidebar); display:flex; flex-direction:column; transition:var(--transition); z-index:10; }
.amc-sidebar-header { padding:28px 24px 20px; border-bottom:1px solid rgba(255,255,255,.07); }
.amc-sidebar-logo-wrap { display:flex; align-items:center; gap:12px; }
.amc-sidebar-logo-wrap img { max-width:140px; max-height:52px; object-fit:contain; }
.amc-sidebar-logo-fallback { display:flex; align-items:center; gap:12px; }
.amc-sidebar-logo-fallback .amc-sb-icon { width:40px;height:40px; background:linear-gradient(135deg,var(--color-primary-light),var(--color-secondary)); border-radius:10px; display:flex;align-items:center;justify-content:center; font-size:20px; flex-shrink:0; }
.amc-sidebar-logo-fallback .amc-sb-name { font-family:var(--font-display); font-size:16px; font-weight:700; color:#fff; line-height:1.2; }
.amc-sidebar-logo-fallback .amc-sb-name span { display:block; font-family:var(--font-body); font-size:10px; font-weight:400; color:rgba(255,255,255,.5); letter-spacing:1.2px; text-transform:uppercase; margin-top:2px; }
.amc-nav { flex:1; padding:20px 14px; overflow-y:auto; }
.amc-nav-section { margin-bottom:6px; }
.amc-nav-label { font-size:10px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,.3); padding:8px 10px 4px; }
.amc-nav-item { display:flex; align-items:center; gap:11px; padding:11px 14px; border-radius:var(--radius-sm); cursor:pointer; color:rgba(255,255,255,.65); font-size:14px; font-weight:500; transition:var(--transition); border:none; background:transparent; width:100%; text-align:left; text-decoration:none; font-family:var(--font-body); }
.amc-nav-item:hover { background:rgba(255,255,255,.07); color:#fff; }
.amc-nav-item.amc-active-nav { background:linear-gradient(90deg,rgba(46,156,85,.35),rgba(46,156,85,.12)); color:#fff; border-left:3px solid var(--color-primary-light); }
.amc-nav-item .amc-nav-icon { font-size:17px; width:22px; text-align:center; flex-shrink:0; }
.amc-sidebar-footer { padding:16px 14px; border-top:1px solid rgba(255,255,255,.07); margin-top: auto; }
.amc-user-card { display:flex; align-items:center; gap:12px; padding:10px; border-radius:var(--radius-sm); }
.amc-avatar { width:38px;height:38px; border-radius:50%; background:linear-gradient(135deg,var(--color-primary-light),var(--color-secondary)); display:flex;align-items:center;justify-content:center; font-size:16px; font-weight:700; color:#fff; flex-shrink:0; font-family:var(--font-display); }
.amc-user-info .amc-user-name { font-size:13px; font-weight:600; color:#fff; }
.amc-user-info .amc-user-role { font-size:11px; color:rgba(255,255,255,.4); }
.amc-btn-logout { margin-top:10px; width:100%; padding:9px; background:rgba(192,57,43,.15); border:1px solid rgba(192,57,43,.3); color:#e8897f; border-radius:var(--radius-sm); font-family:var(--font-body); font-size:13px; font-weight:500; cursor:pointer; transition:var(--transition); }
.amc-btn-logout:hover { background:rgba(192,57,43,.3); color:#fff; }
.amc-main { flex:1; display:flex; flex-direction:column; overflow:hidden; }
.amc-topbar { background:var(--color-surface); border-bottom:1px solid var(--color-border); padding:0 28px; height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; box-shadow:var(--shadow-sm); }
.amc-topbar-title { font-family:var(--font-display); font-size:18px; font-weight:700; color:var(--color-primary-dark); }
.amc-topbar-right { display:flex; align-items:center; gap:14px; }
.amc-topbar-badge { background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light)); color:#fff; font-size:11px; font-weight:600; padding:4px 10px; border-radius:20px; }
.amc-topbar-time { font-size:13px; color:var(--color-text-muted); font-variant-numeric:tabular-nums; }
.amc-content { flex:1; padding:28px; overflow-y:auto; }
.amc-view-section { display:none; animation:amc-fadeIn .4s ease; }
.amc-view-section.amc-view-active { display:block; }

/* ============================================================
   NUEVAS FUNCIONES (Buscador, Notificaciones, Likes)
   ============================================================ */
.amc-search-wrapper { margin-bottom: 20px; position: relative; }
.amc-search-input { width: 100%; padding: 12px 16px 12px 40px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-family: var(--font-body); font-size: 14px; outline: none; transition: var(--transition); background: var(--color-surface); }
.amc-search-input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(46,156,85,.1); }
.amc-search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--color-text-muted); font-size: 16px; }

.amc-bell-wrap { position: relative; cursor: pointer; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #f0f4f2; transition: var(--transition); }
.amc-bell-wrap:hover { background: #e0e8e4; }
.amc-bell-icon { font-size: 16px; }
.amc-notification-dot { position: absolute; top: 4px; right: 4px; width: 8px; height: 8px; background: var(--color-danger); border-radius: 50%; border: 2px solid #f0f4f2; display: none; }
.amc-notification-dot.active { display: block; }
.amc-notif-dropdown { position: absolute; top: 46px; right: 0; width: 280px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-md); padding: 16px; display: none; z-index: 100; cursor: default; }
.amc-notif-dropdown.show { display: block; }
.amc-notif-title { font-weight: 700; font-family: var(--font-display); font-size: 14px; border-bottom: 1px solid var(--color-border); padding-bottom: 8px; margin-bottom: 8px; color: var(--color-primary-dark); }
.amc-notif-list { max-height: 200px; overflow-y: auto; font-size: 13px; }
.amc-notif-item { padding: 8px 0; border-bottom: 1px solid #f0f4f2; }
.amc-notif-item:last-child { border-bottom: none; }

.amc-like-btn { background: transparent; border: 1px solid var(--color-border); padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: 600; color: var(--color-text-muted); cursor: pointer; transition: var(--transition); display: inline-flex; align-items: center; gap: 4px; margin-top: 10px; }
.amc-like-btn:hover { background: #f0f4f2; color: var(--color-text); }
.amc-like-btn.liked { background: rgba(46,156,85,.1); border-color: var(--color-primary); color: var(--color-primary); }

/* ============================================================
   CARDS, PANELS, STATS
   ============================================================ */
.amc-stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-bottom:28px; }
.amc-stat-card { background:var(--color-surface); border-radius:var(--radius-md); padding:22px 20px; box-shadow:var(--shadow-sm); border:1px solid var(--color-border); display:flex; flex-direction:column; gap:6px; animation:amc-fadeUp .5s ease both; transition:var(--transition); }
.amc-stat-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }
.amc-stat-icon { font-size:22px; margin-bottom:4px; }
.amc-stat-label { font-size:12px; font-weight:600; color:var(--color-text-muted); text-transform:uppercase; letter-spacing:.8px; }
.amc-stat-value { font-family:var(--font-display); font-size:26px; font-weight:700; color:var(--color-primary-dark); }
.amc-stat-delta { font-size:12px; color:var(--color-success); font-weight:500; }
.amc-dashboards-panel, .amc-section-panel { background:var(--color-surface); border-radius:var(--radius-md); border:1px solid var(--color-border); box-shadow:var(--shadow-sm); overflow:hidden; margin-bottom:24px; }
.amc-panel-header { padding:18px 24px; border-bottom:1px solid var(--color-border); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.amc-panel-title { font-family:var(--font-display); font-size:16px; font-weight:700; color:var(--color-primary-dark); }
.amc-panel-body { padding:24px; }
.amc-panel-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.amc-tab-btn { padding:7px 16px; border-radius:20px; border:1.5px solid var(--color-border); background:transparent; font-family:var(--font-body); font-size:13px; font-weight:500; color:var(--color-text-muted); cursor:pointer; transition:var(--transition); }
.amc-tab-btn.amc-tab-active, .amc-tab-btn:hover { background:var(--color-primary); border-color:var(--color-primary); color:#fff; }
.amc-iframe-container { width:100%; min-height:500px; background:#f8faf9; display:flex; align-items:center; justify-content:center; position:relative; }
.amc-iframe-container iframe { width:100%; height:520px; border:none; }
.amc-iframe-placeholder { text-align:center; padding:48px 24px; }
.amc-iframe-placeholder .amc-placeholder-icon { font-size:48px; margin-bottom:16px; }
.amc-iframe-placeholder h3 { font-family:var(--font-display); font-size:18px; color:var(--color-primary-dark); margin-bottom:8px; }
.amc-iframe-placeholder p { font-size:13px; color:var(--color-text-muted); max-width:340px; margin:0 auto; line-height:1.6; }
.amc-iframe-placeholder code { background:#e8f3ec; color:var(--color-primary-dark); padding:2px 7px; border-radius:4px; font-size:12px; }
.amc-iframe-loading { position:absolute; inset:0; background:rgba(248,250,249,.9); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; font-size:14px; color:var(--color-text-muted); }
.amc-iframe-loading .amc-loader { width:36px;height:36px; border:3px solid var(--color-border); border-top-color:var(--color-primary); border-radius:50%; animation:amc-spin .8s linear infinite; }

/* ============================================================
   KPIs
   ============================================================ */
.amc-kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-bottom:24px; }
.amc-kpi-card { background:var(--color-surface); border-radius:var(--radius-md); padding:24px 20px; border:1px solid var(--color-border); box-shadow:var(--shadow-sm); position:relative; overflow:hidden; transition:var(--transition); }
.amc-kpi-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.amc-kpi-card::before { content:''; position:absolute; top:0;left:0; width:4px;height:100%; }
.amc-kpi-card.kpi-green::before { background:var(--color-success); }
.amc-kpi-card.kpi-blue::before { background:var(--color-info); }
.amc-kpi-card.kpi-orange::before { background:var(--color-warning); }
.amc-kpi-card.kpi-gold::before { background:var(--color-secondary); }
.amc-kpi-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.amc-kpi-icon { width:42px;height:42px; border-radius:10px; display:flex;align-items:center;justify-content:center; font-size:20px; }
.amc-kpi-card.kpi-green .amc-kpi-icon { background:rgba(39,174,96,.12); }
.amc-kpi-card.kpi-blue .amc-kpi-icon { background:rgba(41,128,185,.12); }
.amc-kpi-card.kpi-orange .amc-kpi-icon { background:rgba(230,126,34,.12); }
.amc-kpi-card.kpi-gold .amc-kpi-icon { background:rgba(240,192,64,.15); }
.amc-kpi-trend { font-size:12px; font-weight:600; padding:3px 10px; border-radius:12px; }
.amc-kpi-trend.up { background:rgba(39,174,96,.1); color:var(--color-success); }
.amc-kpi-trend.down { background:rgba(192,57,43,.1); color:var(--color-danger); }
.amc-kpi-trend.stable { background:rgba(41,128,185,.1); color:var(--color-info); }
.amc-kpi-value { font-family:var(--font-display); font-size:32px; font-weight:700; color:var(--color-text); margin-bottom:4px; }
.amc-kpi-label { font-size:13px; color:var(--color-text-muted); font-weight:500; }
.amc-progress-bar { width:100%; height:6px; background:var(--color-border); border-radius:3px; margin-top:14px; overflow:hidden; }
.amc-progress-fill { height:100%; border-radius:3px; transition:width 1s ease; }
.amc-progress-fill.green { background:linear-gradient(90deg,#27ae60,#2ecc71); }
.amc-progress-fill.blue { background:linear-gradient(90deg,#2980b9,#3498db); }
.amc-progress-fill.orange { background:linear-gradient(90deg,#e67e22,#f39c12); }
.amc-progress-fill.gold { background:linear-gradient(90deg,#d4a017,#f0c040); }
.amc-chart-area { background:#f8faf9; border:2px dashed var(--color-border); border-radius:var(--radius-md); padding:40px 24px; text-align:center; min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }
.amc-chart-area .chart-icon { font-size:48px; opacity:.6; }
.amc-chart-area h4 { font-family:var(--font-display); font-size:16px; color:var(--color-text); }
.amc-chart-area p { font-size:13px; color:var(--color-text-muted); max-width:360px; line-height:1.5; }
.amc-charts-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(350px,1fr)); gap:20px; }

/* ============================================================
   MAPAS
   ============================================================ */
.amc-upload-zone { border:2px dashed var(--color-primary-light); border-radius:var(--radius-md); padding:40px 24px; text-align:center; background:linear-gradient(135deg,rgba(46,156,85,.03),rgba(240,192,64,.03)); cursor:pointer; transition:var(--transition); position:relative; }
.amc-upload-zone:hover { border-color:var(--color-primary); background:linear-gradient(135deg,rgba(46,156,85,.06),rgba(240,192,64,.06)); transform:translateY(-2px); }
.amc-upload-zone.amc-drag-over { border-color:var(--color-primary); background:rgba(46,156,85,.08); box-shadow:0 0 0 4px rgba(46,156,85,.15); }
.amc-upload-icon { font-size:52px; margin-bottom:12px; display:block; }
.amc-upload-title { font-family:var(--font-display); font-size:17px; font-weight:700; color:var(--color-primary-dark); margin-bottom:8px; }
.amc-upload-desc { font-size:13px; color:var(--color-text-muted); margin-bottom:16px; }
.amc-upload-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 24px; background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light)); color:#fff; border:none; border-radius:var(--radius-sm); font-family:var(--font-body); font-size:14px; font-weight:600; cursor:pointer; transition:var(--transition); }
.amc-upload-btn:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); }
.amc-upload-formats { margin-top:12px; font-size:11px; color:var(--color-text-muted); }
.amc-upload-formats span { background:rgba(15,69,36,.06); padding:2px 8px; border-radius:4px; margin:0 3px; font-weight:500; }
.amc-files-list { list-style:none; margin-top:20px; }
.amc-file-item { display:flex; align-items:center; gap:14px; padding:14px 18px; background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-sm); margin-bottom:10px; transition:var(--transition); }
.amc-file-item:hover { border-color:var(--color-primary-light); box-shadow:var(--shadow-sm); }
.amc-file-item .file-icon { font-size:28px; flex-shrink:0; }
.amc-file-item .file-info { flex:1; }
.amc-file-item .file-name { font-weight:600; font-size:14px; color:var(--color-text); }
.amc-file-item .file-meta { font-size:12px; color:var(--color-text-muted); }
.amc-file-item .file-remove { background:none; border:none; font-size:18px; cursor:pointer; color:var(--color-danger); opacity:.5; transition:var(--transition); padding:4px; font-family:var(--font-body); }
.amc-file-item .file-remove:hover { opacity:1; }
.amc-map-embed { width:100%; height:400px; border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--color-border); margin-bottom:20px; background:#e8f3ec; display:flex; align-items:center; justify-content:center; }
.amc-map-placeholder { text-align:center; padding:20px; }
.amc-map-placeholder .map-icon { font-size:56px; margin-bottom:12px; display:block; }
.amc-municipios-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-top:20px; }
.amc-municipio-card { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:16px; text-align:center; transition:var(--transition); }
.amc-municipio-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); border-color:var(--color-primary-light); }
.amc-municipio-card .mun-icon { font-size:28px; margin-bottom:8px; display:block; }
.amc-municipio-card .mun-name { font-weight:600; font-size:14px; color:var(--color-text); }
.amc-municipio-card .mun-pop { font-size:12px; color:var(--color-text-muted); margin-top:4px; }

/* ============================================================
   PROYECTOS
   ============================================================ */
.amc-projects-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; }
.amc-project-card { background:var(--color-surface); border-radius:var(--radius-md); border:1px solid var(--color-border); box-shadow:var(--shadow-sm); overflow:hidden; transition:var(--transition); animation:amc-fadeUp .4s ease both; }
.amc-project-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.amc-project-banner { height:6px; width:100%; }
.amc-project-banner.status-activo { background:linear-gradient(90deg,#27ae60,#2ecc71); }
.amc-project-banner.status-planeacion { background:linear-gradient(90deg,#2980b9,#3498db); }
.amc-project-banner.status-pausa { background:linear-gradient(90deg,#e67e22,#f39c12); }
.amc-project-banner.status-completado { background:linear-gradient(90deg,#1a6b3a,#2e9c55); }
.amc-project-body { padding:20px; }
.amc-project-top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; gap:12px; }
.amc-project-name { font-family:var(--font-display); font-size:16px; font-weight:700; color:var(--color-text); line-height:1.3; }
.amc-project-status { padding:4px 12px; border-radius:12px; font-size:11px; font-weight:600; white-space:nowrap; flex-shrink:0; }
.amc-project-status.status-activo { background:rgba(39,174,96,.12); color:#1e8449; }
.amc-project-status.status-planeacion { background:rgba(41,128,185,.12); color:#1a5276; }
.amc-project-status.status-pausa { background:rgba(230,126,34,.12); color:#a04000; }
.amc-project-status.status-completado { background:rgba(26,107,58,.12); color:#0f4524; }
.amc-project-office { font-size:12px; color:var(--color-text-muted); margin-bottom:8px; display:flex; align-items:center; gap:6px; }
.amc-project-desc { font-size:13px; color:var(--color-text-muted); line-height:1.5; margin-bottom:16px; }
.amc-project-progress-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.amc-project-progress-label { font-size:12px; font-weight:600; color:var(--color-text); }
.amc-project-progress-pct { font-size:12px; font-weight:700; color:var(--color-primary); }
.amc-project-progress { width:100%; height:8px; background:var(--color-border); border-radius:4px; overflow:hidden; }
.amc-project-progress-bar { height:100%; border-radius:4px; background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light)); transition:width 1.2s ease; }
.amc-project-footer { display:flex; align-items:center; justify-content:space-between; margin-top:16px; padding-top:14px; border-top:1px solid var(--color-border); }
.amc-project-date { font-size:11px; color:var(--color-text-muted); display:flex; align-items:center; gap:4px; }
.amc-project-team { display:flex; }
.amc-project-team-avatar { width:28px;height:28px; border-radius:50%; border:2px solid #fff; background:linear-gradient(135deg,var(--color-primary-light),var(--color-secondary)); display:flex;align-items:center;justify-content:center; font-size:11px; font-weight:700; color:#fff; margin-left:-6px; }
.amc-project-team-avatar:first-child { margin-left:0; }
.amc-filter-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.amc-filter-btn { padding:8px 16px; border-radius:20px; border:1.5px solid var(--color-border); background:transparent; font-family:var(--font-body); font-size:13px; font-weight:500; color:var(--color-text-muted); cursor:pointer; transition:var(--transition); }
.amc-filter-btn.active, .amc-filter-btn:hover { background:var(--color-primary); border-color:var(--color-primary); color:#fff; }

/* ============================================================
   DOCUMENTOS
   ============================================================ */
.amc-docs-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; }
.amc-doc-card { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:20px; transition:var(--transition); cursor:pointer; display:flex; gap:16px; align-items:flex-start; }
.amc-doc-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:var(--color-primary-light); }
.amc-doc-icon { font-size:36px; flex-shrink:0; }
.amc-doc-info h4 { font-family:var(--font-display); font-size:14px; font-weight:700; color:var(--color-text); margin-bottom:6px; line-height:1.3; }
.amc-doc-info p { font-size:12px; color:var(--color-text-muted); line-height:1.4; }
.amc-doc-tag { display:inline-block; padding:2px 10px; border-radius:10px; font-size:10px; font-weight:600; margin-top:8px; }
.amc-doc-tag.tag-normativa { background:rgba(41,128,185,.1); color:var(--color-info); }
.amc-doc-tag.tag-formulario { background:rgba(39,174,96,.1); color:var(--color-success); }
.amc-doc-tag.tag-acuerdo { background:rgba(240,192,64,.15); color:#9a7d0a; }
.amc-doc-tag.tag-manual { background:rgba(230,126,34,.1); color:var(--color-warning); }

/* ============================================================
   COMUNICADOS
   ============================================================ */
.amc-comunicados-wrapper { display:flex; flex-direction:column; gap:16px; }
.amc-comunicado-card { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); overflow:hidden; transition:var(--transition); animation:amc-fadeUp .4s ease both; }
.amc-comunicado-card:hover { box-shadow:var(--shadow-md); }
.amc-comunicado-priority { height:4px; width:100%; }
.amc-comunicado-priority.priority-alta { background:linear-gradient(90deg,#c0392b,#e74c3c); }
.amc-comunicado-priority.priority-media { background:linear-gradient(90deg,#e67e22,#f39c12); }
.amc-comunicado-priority.priority-normal { background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light)); }
.amc-comunicado-priority.priority-info { background:linear-gradient(90deg,#2980b9,#3498db); }
.amc-comunicado-body { padding:20px 24px; }
.amc-comunicado-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:10px; gap:12px; }
.amc-comunicado-title { font-family:var(--font-display); font-size:16px; font-weight:700; color:var(--color-text); }
.amc-comunicado-badge { padding:3px 10px; border-radius:10px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; white-space:nowrap; flex-shrink:0; }
.amc-comunicado-badge.badge-nuevo { background:rgba(192,57,43,.2); color:var(--color-danger); }
.amc-comunicado-badge.badge-vigente { background:rgba(39,174,96,.2); color:var(--color-success); }
.amc-comunicado-text { font-size:14px; color:var(--color-text-muted); line-height:1.6; margin-bottom:14px; }
.amc-comunicado-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--color-text-muted); padding-top:12px; border-top:1px solid var(--color-border); }
.amc-comunicado-author { display:flex; align-items:center; gap:8px; }
.amc-comunicado-author-avatar { width:26px;height:26px; border-radius:50%; background:linear-gradient(135deg,var(--color-primary-light),var(--color-secondary)); display:flex;align-items:center;justify-content:center; font-size:11px; font-weight:700; color:#fff; }

/* ============================================================
   FORMULARIOS
   ============================================================ */
.amc-new-comunicado { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:24px; margin-bottom:20px; }
.amc-new-comunicado h4 { font-family:var(--font-display); font-size:15px; font-weight:700; color:var(--color-primary-dark); margin-bottom:16px; }
.amc-form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.amc-form-field { display:flex; flex-direction:column; gap:6px; }
.amc-form-field label { font-size:12px; font-weight:600; color:var(--color-text); }
.amc-form-field input, .amc-form-field textarea, .amc-form-field select { padding:10px 14px; border:1.5px solid var(--color-border); border-radius:var(--radius-sm); font-family:var(--font-body); font-size:14px; color:var(--color-text); background:#fafcfb; outline:none; transition:var(--transition); }
.amc-form-field input:focus, .amc-form-field textarea:focus, .amc-form-field select:focus { border-color:var(--color-primary-light); box-shadow:0 0 0 3px rgba(46,156,85,.15); }
.amc-form-field textarea { resize:vertical; min-height:80px; }
.amc-btn-publish { display:inline-flex; align-items:center; gap:8px; padding:11px 24px; background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light)); color:#fff; border:none; border-radius:var(--radius-sm); font-family:var(--font-body); font-size:14px; font-weight:600; cursor:pointer; transition:var(--transition); }
.amc-btn-publish:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); }

/* ============================================================
   PERFIL
   ============================================================ */
.amc-profile-container { max-width:700px; margin:0 auto; }
.amc-profile-hero { background:linear-gradient(135deg,var(--color-bg-sidebar),#1a4a28); border-radius:var(--radius-lg); padding:40px; text-align:center; color:#fff; position:relative; overflow:hidden; margin-bottom:24px; }
.amc-profile-hero::before { content:''; position:absolute; width:300px;height:300px; border-radius:50%; background:radial-gradient(circle,rgba(46,156,85,.2),transparent 70%); top:-100px;right:-80px; pointer-events:none; }
.amc-profile-avatar-lg { width:90px;height:90px; border-radius:50%; background:linear-gradient(135deg,var(--color-primary-light),var(--color-secondary)); display:flex;align-items:center;justify-content:center; font-size:36px; font-weight:700; color:#fff; font-family:var(--font-display); margin:0 auto 16px; position:relative; z-index:1; border:4px solid rgba(255,255,255,.2); box-shadow:0 4px 24px rgba(0,0,0,.2); }
.amc-profile-name-lg { font-family:var(--font-display); font-size:26px; font-weight:700; position:relative; z-index:1; }
.amc-profile-role-lg { font-size:14px; opacity:.7; margin-top:6px; position:relative; z-index:1; }
.amc-profile-details { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); overflow:hidden; }
.amc-profile-detail-row { display:flex; align-items:center; padding:16px 24px; border-bottom:1px solid var(--color-border); transition:var(--transition); }
.amc-profile-detail-row:last-child { border-bottom:none; }
.amc-profile-detail-row:hover { background:rgba(46,156,85,.02); }
.amc-profile-detail-icon { font-size:20px; width:40px; text-align:center; flex-shrink:0; }
.amc-profile-detail-label { font-size:12px; font-weight:600; color:var(--color-text-muted); text-transform:uppercase; letter-spacing:.5px; width:140px; flex-shrink:0; }
.amc-profile-detail-value { font-size:14px; color:var(--color-text); font-weight:500; }

/* ============================================================
   ADMIN PANEL
   ============================================================ */
.amc-admin-tabs { display:flex; gap:4px; border-bottom:2px solid var(--color-border); margin-bottom:24px; }
.amc-admin-tab { padding:12px 20px; background:transparent; border:none; border-bottom:3px solid transparent; font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--color-text-muted); cursor:pointer; transition:var(--transition); margin-bottom:-2px; }
.amc-admin-tab:hover { color:var(--color-text); }
.amc-admin-tab.active { color:var(--color-primary); border-bottom-color:var(--color-primary); }
.amc-admin-panel-content { display:none; animation:amc-fadeIn .3s ease; }
.amc-admin-panel-content.active { display:block; }
.amc-admin-table-wrap { overflow-x:auto; }
.amc-admin-table { width:100%; border-collapse:collapse; font-size:13px; }
.amc-admin-table thead th { background:var(--color-bg); padding:12px 14px; text-align:left; font-weight:600; color:var(--color-text-muted); text-transform:uppercase; letter-spacing:.5px; font-size:11px; border-bottom:2px solid var(--color-border); }
.amc-admin-table tbody td { padding:12px 14px; border-bottom:1px solid var(--color-border); color:var(--color-text); vertical-align:middle; }
.amc-admin-table tbody tr:hover { background:rgba(46,156,85,.02); }
.amc-btn-sm { padding:6px 14px; border-radius:var(--radius-sm); border:none; font-family:var(--font-body); font-size:12px; font-weight:600; cursor:pointer; transition:var(--transition); }
.amc-btn-sm.btn-danger { background:rgba(192,57,43,.1); color:var(--color-danger); }
.amc-btn-sm.btn-danger:hover { background:rgba(192,57,43,.2); }
.amc-btn-sm.btn-primary { background:rgba(26,107,58,.1); color:var(--color-primary); }
.amc-btn-sm.btn-primary:hover { background:rgba(26,107,58,.2); }
.amc-admin-form { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:24px; margin-bottom:20px; }
.amc-admin-form h4 { font-family:var(--font-display); font-size:15px; font-weight:700; color:var(--color-primary-dark); margin-bottom:16px; }
.amc-admin-badge { display:inline-flex; align-items:center; gap:4px; padding:4px 12px; border-radius:12px; font-size:11px; font-weight:600; background:rgba(192,57,43,.1); color:var(--color-danger); margin-bottom:16px; }

/* ============================================================
   EMPTY STATE & MISC
   ============================================================ */
.amc-empty-state { text-align:center; padding:50px 24px; }
.amc-empty-state .empty-icon { font-size:56px; margin-bottom:16px; display:block; opacity:.7; }
.amc-empty-state h3 { font-family:var(--font-display); font-size:18px; color:var(--color-text); margin-bottom:8px; }
.amc-empty-state p { font-size:13px; color:var(--color-text-muted); max-width:380px; margin:0 auto; line-height:1.6; }
.amc-toast { position:fixed; bottom:28px; right:28px; background:var(--color-primary-dark); color:#fff; padding:13px 20px; border-radius:var(--radius-sm); font-size:14px; font-weight:500; font-family:var(--font-body); box-shadow:var(--shadow-md); z-index:9999; transform:translateY(80px); opacity:0; transition:all .35s cubic-bezier(.4,0,.2,1); }
.amc-toast.amc-toast-show { transform:translateY(0); opacity:1; }
.amc-hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:6px; background:none; border:none; }
.amc-hamburger span { display:block; width:22px;height:2px; background:var(--color-text); border-radius:2px; transition:var(--transition); }
.amc-sb-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:99; }
.amc-sb-overlay.amc-visible { display:block; }
.amc-hidden-rbac { display:none !important; }
.amc-intranet-app ::-webkit-scrollbar { width:6px; }
.amc-intranet-app ::-webkit-scrollbar-track { background:transparent; }
.amc-intranet-app ::-webkit-scrollbar-thumb { background:rgba(15,69,36,.15); border-radius:3px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:768px) {
  .amc-sidebar { position:fixed; left:-260px; top:0; bottom:0; transition:transform .3s ease; z-index:100; }
  .amc-sidebar.amc-sb-open { transform:translateX(260px); }
  .amc-topbar { padding:0 16px; }
  .amc-content { padding:16px; }
  .amc-stats-row, .amc-kpi-grid { grid-template-columns:1fr 1fr; }
  .amc-projects-grid, .amc-charts-grid, .amc-docs-grid { grid-template-columns:1fr; }
  .amc-form-row { grid-template-columns:1fr; }
  .amc-hamburger { display:flex !important; }
  .amc-municipios-grid { grid-template-columns:repeat(2,1fr); }
  .amc-admin-tabs { overflow-x:auto; }
}
/* ============================================================
   SKELETON LOADERS
   ============================================================ */
@keyframes amcShimmer {
  0% { background-position: -1000px 0; }
  100% { background-position: 1000px 0; }
}
.amc-skeleton {
  background: #e2e8f0;
  background-image: linear-gradient(to right, #e2e8f0 8%, #cbd5e1 18%, #e2e8f0 33%);
  background-size: 1000px 100%;
  animation: amcShimmer 2s infinite linear;
  border-radius: 4px;
}
.amc-skeleton-text { height: 16px; margin-bottom: 8px; width: 100%; display: inline-block; }
.amc-skeleton-title { height: 24px; margin-bottom: 16px; width: 60%; display: inline-block; }
.amc-skeleton-btn { height: 32px; width: 80px; border-radius: 6px; display: inline-block; }
.amc-skeleton-avatar { height: 40px; width: 40px; border-radius: 50%; display: inline-block; }

/* ============================================================
   SWEETALERT2 CUSTOM STYLES
   ============================================================ */
.amc-swal-popup {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  border-radius: 12px !important;
}
.amc-swal-btn {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  border: none !important;
  cursor: pointer;
  transition: all 0.2s ease;
  margin: 0 5px;
}
.amc-swal-btn:hover { filter: brightness(1.1); transform: translateY(-1px); }
.amc-swal-danger { background-color: #c0392b !important; color: white !important; }
.amc-swal-cancel { background-color: #6b7d73 !important; color: white !important; }
.amc-swal-icon { border-color: #e67e22 !important; color: #e67e22 !important; }

/* SWEETALERT FORM FIELDS */
.amc-swal-custom-field { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; text-align:left; }
.amc-swal-custom-field label { font-size:12px; font-weight:700; color:var(--color-primary-dark); text-transform:uppercase; letter-spacing:0.5px; }
.amc-swal-custom-field input, .amc-swal-custom-field textarea, .amc-swal-custom-field select { padding:12px 14px; border:1px solid #cbd5e1; border-radius:6px; font-family:var(--font-body); font-size:14px; color:var(--color-text); background:#f8fafc; outline:none; transition:all 0.2s; width:100%; box-sizing:border-box; box-shadow: inset 0 1px 2px rgba(0,0,0,0.03); }
.amc-swal-custom-field input:focus, .amc-swal-custom-field textarea:focus, .amc-swal-custom-field select:focus { border-color:var(--color-primary); box-shadow:0 0 0 3px rgba(26,107,58,0.15); background:#fff; }