/* ================================================================
   SENMC Academic Search & Student Consultant
   Corporate colors: brown #B55A2A · teal #1FB5CE
   ================================================================ */

:root{
  --senmc-brown:#B55A2A;
  --senmc-brown-2:#8E4420;
  --senmc-teal:#1FB5CE;
  --senmc-teal-2:#1693A6;
  --senmc-ink:#2B2B2B;
  --senmc-muted:#6B6B6B;
  --senmc-bg:#F7F5F1;
  --senmc-line:#E4DFD7;
  --senmc-shadow:0 2px 10px rgba(0,0,0,.06);
  --senmc-radius:10px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
              "Helvetica Neue",Arial,sans-serif;
  color:var(--senmc-ink);background:var(--senmc-bg);line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--senmc-brown);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.muted{color:var(--senmc-muted)}

.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:8px;top:8px;background:#fff;padding:6px 10px;z-index:999}

/* ================================================================
   HEADER / NAV
   ================================================================ */

.site-header{
  background:#fff;
  border-bottom:1px solid var(--senmc-line);
  position:sticky;top:0;z-index:50;
}
.header-stripe{display:flex;height:5px}
.header-stripe span{flex:1}
.header-stripe span:first-child{background:var(--senmc-brown)}
.header-stripe span:last-child{background:var(--senmc-teal)}

.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;gap:16px;
}
.brand{display:flex;align-items:center;flex-shrink:0}
.brand img{display:block}

.nav-toggle{
  display:none;background:none;border:1px solid var(--senmc-line);
  border-radius:8px;padding:6px 12px;font-size:20px;cursor:pointer;
  color:var(--senmc-ink);
}

.site-nav{display:flex;align-items:center;gap:2px}
.site-nav a{
  padding:9px 14px;
  color:var(--senmc-ink);
  font-weight:500;
  font-size:15px;
  border-radius:8px;
  transition:background .15s, color .15s;
  white-space:nowrap;
}
.site-nav a:hover{background:var(--senmc-bg);text-decoration:none}
.site-nav a.is-active{color:var(--senmc-brown);background:#FBEEE5}
.site-nav a.eddy-link{color:var(--senmc-teal-2)}
.site-nav a.eddy-link.is-active{color:var(--senmc-teal-2);background:#E3F6FA}
.site-nav a.nav-admin{
  font-size:13px;font-weight:400;color:#999;
  padding:9px 10px;margin-left:8px;border-left:1px solid var(--senmc-line);
  border-radius:0;padding-left:16px;
}
.site-nav a.nav-admin:hover{background:transparent;color:var(--senmc-ink)}

@media (max-width:820px){
  .nav-toggle{display:block}
  .site-nav{
    display:none;width:100%;flex-direction:column;align-items:stretch;
    padding-top:10px;border-top:1px solid var(--senmc-line);margin-top:10px;
  }
  body.nav-open .site-nav{display:flex}
  .site-nav a{padding:12px 14px;font-size:15.5px}
  .site-nav a.nav-admin{margin-left:0;border-left:none;padding-left:14px;border-top:1px solid var(--senmc-line)}
  .header-inner{flex-wrap:wrap}
}

/* ---------- Admin ---------- */
.linkbtn {
  background: none; border: none; padding: 0;
  color: var(--senmc-brown); cursor: pointer; font-size: inherit;
  font-family: inherit; text-decoration: underline;
}
.linkbtn:hover { color: var(--senmc-brown-2); }

@media (max-width: 620px) {
  form.card > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}
/* ================================================================
   HOME HERO + STATS
   ================================================================ */

.hero{background:#fff;padding:56px 0 40px;text-align:center}
.hero-title{font-size:42px;font-weight:700;margin:0 0 28px;letter-spacing:-0.02em}
.hero-search{display:flex;max-width:720px;margin:0 auto}
.hero-search input[type="search"]{
  flex:1;padding:16px 20px;font-size:17px;
  border:2px solid var(--senmc-line);border-right:none;
  border-radius:10px 0 0 10px;outline:none;transition:border-color .15s;
}
.hero-search input[type="search"]:focus{border-color:var(--senmc-teal)}
.hero-search button{
  padding:16px 32px;font-size:16px;font-weight:600;
  background:var(--senmc-brown);color:#fff;border:2px solid var(--senmc-brown);
  border-radius:0 10px 10px 0;cursor:pointer;
}
.hero-search button:hover{background:var(--senmc-brown-2);border-color:var(--senmc-brown-2)}

.quick-links{margin-top:26px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.quick-link{
  padding:10px 18px;background:var(--senmc-bg);border-radius:20px;
  font-size:14px;font-weight:500;color:var(--senmc-ink);
}
.quick-link:hover{background:#EFEAE1;text-decoration:none}
.quick-link.eddy-link{color:var(--senmc-teal-2);background:#E3F6FA}

.stats-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
  margin:32px auto;
}
.stat-card{
  background:#fff;border-radius:var(--senmc-radius);padding:22px 18px;
  text-align:center;box-shadow:var(--senmc-shadow);
}
.stat-num{display:block;font-size:30px;font-weight:700;color:var(--senmc-teal-2)}
.stat-label{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--senmc-muted)}
@media (max-width:620px){.stats-row{grid-template-columns:repeat(2,1fr)}}

.notice{
  background:#FFF7E6;border-left:4px solid var(--senmc-brown);
  padding:12px 18px;border-radius:6px;margin-bottom:24px;
}

/* ================================================================
   PAGE HEAD (Faculty, Courses, Degrees)
   ================================================================ */

.page-head{padding:32px 20px 8px}
.page-head h1{margin:0 0 6px;font-size:32px;letter-spacing:-0.01em}
.page-head .lead{color:var(--senmc-muted);margin:6px 0 0;font-size:15px}
.back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: #fff;
  color: var(--senmc-brown);
  border: 1.5px solid var(--senmc-brown);
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  margin-bottom: 12px;
  transition: background .15s, color .15s, transform .1s;
}
.back:hover {
  background: var(--senmc-brown);
  color: #fff;
  text-decoration: none;
  transform: translateX(-2px);
}
.bio{color:#444;margin-top:12px}

.filter-bar{
  display:flex;gap:10px;flex-wrap:wrap;
  margin-top:16px;padding:14px;
  background:#fff;border-radius:var(--senmc-radius);
  box-shadow:var(--senmc-shadow);
}
.filter-bar input,
.filter-bar select{
  padding:10px 12px;border:1px solid var(--senmc-line);
  border-radius:8px;font-size:14px;background:#fff;
  font-family:inherit;outline:none;
}
.filter-bar input:focus,
.filter-bar select:focus{border-color:var(--senmc-teal)}
.filter-bar input[type="search"]{flex:1;min-width:220px}
.filter-bar button{
  padding:10px 22px;background:var(--senmc-brown);color:#fff;
  border:none;border-radius:8px;font-weight:600;cursor:pointer;font-size:14px;
}
.filter-bar button:hover{background:var(--senmc-brown-2)}

/* ================================================================
   GRIDS + CARDS
   ================================================================ */

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:16px auto 40px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px auto}
@media (max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.grid-3,.grid-2{grid-template-columns:1fr}}

.card{
  display:block;background:#fff;border-radius:var(--senmc-radius);
  padding:20px;box-shadow:var(--senmc-shadow);color:var(--senmc-ink);
  transition:box-shadow .15s, transform .15s;
}
.card:hover{text-decoration:none;box-shadow:0 4px 16px rgba(0,0,0,.09);transform:translateY(-1px)}
.card h2{margin:0 0 12px;font-size:18px}
.card h3{margin:0 0 8px;font-size:15.5px}
.card-name{font-weight:700;font-size:17px;margin-bottom:4px;line-height:1.3}
.card-code{
  display:inline-block;font-family:"SF Mono",Consolas,monospace;
  font-size:12.5px;font-weight:700;letter-spacing:.02em;
  color:var(--senmc-brown);background:#FBEEE5;
  padding:3px 8px;border-radius:6px;margin-bottom:8px;
}
.card-meta{font-size:13.5px;color:var(--senmc-muted);margin-top:2px}
.card-tags{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap}

/* ================================================================
   TAGS
   ================================================================ */

.tag{
  display:inline-block;padding:3px 10px;font-size:12px;
  border-radius:12px;font-weight:500;line-height:1.4;
}
.tag-brown{background:#FBEEE5;color:var(--senmc-brown)}
.tag-teal{background:#E3F6FA;color:var(--senmc-teal-2)}
.tag-purple{background:#EFE7F7;color:#6A3FA0}
.tag-outline{background:#fff;color:var(--senmc-muted);border:1px solid var(--senmc-line)}

/* ================================================================
   TABLES
   ================================================================ */

.data-table{
  width:100%;border-collapse:collapse;background:#fff;
  border-radius:var(--senmc-radius);overflow:hidden;
  box-shadow:var(--senmc-shadow);
}
.data-table th,
.data-table td{
  padding:12px 14px;text-align:left;font-size:14px;
  border-bottom:1px solid var(--senmc-line);vertical-align:top;
}
.data-table th{
  background:var(--senmc-bg);font-weight:600;font-size:12.5px;
  text-transform:uppercase;letter-spacing:.05em;color:var(--senmc-muted);
}
.data-table tr:last-child td{border-bottom:none}

/* ================================================================
   KEY/VALUE + LISTS
   ================================================================ */

.kv{display:grid;grid-template-columns:90px 1fr;gap:6px 12px;margin:12px 0 0}
.kv dt{color:var(--senmc-muted);font-size:13px}
.kv dd{margin:0}

.oh-list{list-style:none;padding:0;margin:8px 0 0}
.oh-list li{padding:8px 0;border-bottom:1px solid var(--senmc-line);font-size:14.5px}
.oh-list li:last-child{border-bottom:none}

/* ================================================================
   FOOTER
   ================================================================ */

.site-footer{background:var(--senmc-ink);color:#ddd;padding:28px 0;font-size:14px;margin-top:40px}
.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.footer-links{display:flex;gap:16px}
.footer-links a{color:#bbb}
.footer-links a:hover{color:#fff}
.footer-note{color:#999;font-size:12.5px}

/* ================================================================
   EDDY PAGE
   ================================================================ */

.eddy-hero{
  background:linear-gradient(135deg,#1FB5CE 0%,#1693A6 60%,#B55A2A 100%);
  color:#fff;padding:40px 0 60px;
}
.eddy-hero-inner{display:flex;gap:40px;align-items:center;flex-wrap:wrap}
.eddy-hero-photo{flex:0 0 240px;max-width:240px}
.eddy-hero-photo img{
  width:100%;height:auto;display:block;border-radius:20px;
  box-shadow:0 12px 40px rgba(0,0,0,.3);
  border:4px solid rgba(255,255,255,.15);
}
.eddy-hero-copy{flex:1 1 300px;min-width:280px}
.eddy-hero-tag{
  display:inline-block;background:rgba(255,255,255,.18);color:#fff;
  padding:4px 12px;border-radius:20px;font-size:12.5px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;margin-bottom:14px;
}
.eddy-hero-copy h1{
  font-size:44px;font-weight:800;margin:0 0 14px;
  letter-spacing:-0.02em;line-height:1.05;
}
.eddy-hero-copy p{
  font-size:16.5px;line-height:1.6;margin:0 0 20px;
  max-width:560px;color:rgba(255,255,255,.92);
}
.eddy-hero-chips{display:flex;gap:8px;flex-wrap:wrap}
.eddy-hero-chips .chip{
  background:rgba(255,255,255,.15);padding:6px 14px;
  border-radius:20px;font-size:13.5px;font-weight:500;
}
@media (max-width:620px){
  .eddy-hero-photo{flex:0 0 160px;max-width:160px;margin:0 auto}
  .eddy-hero-copy h1{font-size:32px}
  .eddy-hero-copy{text-align:center}
  .eddy-hero-chips{justify-content:center}
}

.eddy-chat-wrap{margin-top:-40px;margin-bottom:60px;position:relative;z-index:2}

.eddy-chat{
  background:#fff;border-radius:16px;
  box-shadow:0 10px 40px rgba(0,0,0,.12);
  max-width:900px;margin:0 auto;overflow:hidden;
  display:flex;flex-direction:column;
}

.eddy-chat-header{
  display:flex;align-items:center;gap:12px;
  padding:14px 22px;background:#F7F5F1;
  border-bottom:1px solid var(--senmc-line);
}
.eddy-avatar{
  width:46px;height:46px;border-radius:50%;
  object-fit:cover;object-position:top center;
  border:2px solid var(--senmc-teal);background:#fff;
}
.eddy-chat-name{font-weight:700;font-size:15.5px}
.eddy-chat-status{font-size:12.5px;color:var(--senmc-muted);display:flex;align-items:center;gap:6px}
.dot{
  width:8px;height:8px;border-radius:50%;background:#2BB673;
  display:inline-block;box-shadow:0 0 0 3px rgba(43,182,115,.18);
}

.eddy-messages{
  padding:24px 22px;min-height:260px;max-height:480px;
  overflow-y:auto;display:flex;flex-direction:column;gap:14px;
  background:#FCFBF8;
}
.eddy-msg{display:flex}
.eddy-user{justify-content:flex-end}
.eddy-bot{justify-content:flex-start}

.eddy-bubble{
  max-width:78%;padding:13px 17px;border-radius:16px;
  font-size:14.5px;line-height:1.6;
}
.eddy-user .eddy-bubble{
  background:var(--senmc-brown);color:#fff;
  border-bottom-right-radius:4px;
}
.eddy-bot .eddy-bubble{
  background:#fff;color:#222;border-bottom-left-radius:4px;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
}

.eddy-sources{
  margin-top:10px;padding-top:8px;border-top:1px solid var(--senmc-line);
  font-size:12px;color:var(--senmc-muted);line-height:1.5;
}

.eddy-typing{display:inline-flex;gap:4px;align-items:center}
.t-dot{
  width:7px;height:7px;border-radius:50%;background:#aaa;
  display:inline-block;animation:tdot 1.2s infinite ease-in-out;
}
.t-dot:nth-child(2){animation-delay:.15s}
.t-dot:nth-child(3){animation-delay:.3s}
@keyframes tdot{
  0%,60%,100%{opacity:.3;transform:translateY(0)}
  30%{opacity:1;transform:translateY(-3px)}
}

.eddy-form{
  display:flex;gap:12px;padding:18px 22px 8px;
  border-top:1px solid var(--senmc-line);background:#fff;align-items:stretch;
}
.eddy-form textarea{
  flex:1;min-height:90px;max-height:220px;resize:none;
  padding:14px 16px;border:1.5px solid var(--senmc-line);
  border-radius:12px;font-family:inherit;font-size:15px;line-height:1.5;
  outline:none;background:#FCFBF8;transition:border-color .15s, background .15s;
}
.eddy-form textarea:focus{border-color:var(--senmc-teal);background:#fff}
.eddy-form button{
  padding:0 32px;background:var(--senmc-teal);color:#fff;
  border:none;border-radius:12px;font-weight:600;cursor:pointer;
  font-size:15px;min-height:90px;transition:background .15s;
}
.eddy-form button:hover:not(:disabled){background:var(--senmc-teal-2)}
.eddy-form button:disabled{opacity:.6;cursor:wait}
@media (max-width:620px){
  .eddy-form{flex-direction:column;padding:14px 16px 8px}
  .eddy-form button{min-height:48px;padding:0;width:100%}
  .eddy-form textarea{min-height:80px}
}

.eddy-note{font-size:12px;text-align:center;color:var(--senmc-muted);margin:6px 20px 18px}

.eddy-bubble { white-space: normal; }
.eddy-bubble br + br { line-height: 0.6; }

/* Admin strip */
.admin-strip {
  background: var(--senmc-ink);
  color: #fff;
  padding: 8px 0;
  font-size: 13.5px;
}
.admin-strip .wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.admin-strip a {
  color: #bbb;
  text-decoration: none;
}
.admin-strip a:hover {
  color: #fff;
}
.admin-strip strong {
  color: var(--senmc-teal);
}