:root { --ink:#292b2c; --muted:#707172; --paper:#f6f4ee; --card:#fffefa; --line:#deded8; --teal:#ef705c; --teal-dark:#343638; --orange:#f2d81f; --yellow:#fff03b; --yellow-soft:#fff8bd; --coral-soft:#fbe1db; }
* { box-sizing:border-box; }
html, body { margin:0; min-height:100%; background:var(--paper); color:var(--ink); }
body { font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, textarea, select { font:inherit; }
button { cursor:pointer; }
.app-shell { min-height:100vh; }
.topbar { height:78px; display:flex; align-items:center; gap:14px; padding:0 28px; background:#fffdfa; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.brand-logo { width:178px; height:38px; display:flex; align-items:center; overflow:hidden; }
.brand-logo img { display:block; width:100%; height:auto; object-fit:contain; }
.brand-logo.compact { width:112px; height:58px; }
.brand-logo.compact img { max-height:58px; }
.brand-mark { width:48px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--teal); color:#fff; border-bottom:5px solid var(--yellow); font-weight:950; letter-spacing:-1px; }
.topbar h1 { margin:0; font-family:Georgia, serif; font-size:22px; }
.eyebrow { margin:0 0 3px; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.today-chip { margin-left:auto; display:flex; gap:8px; align-items:center; font-size:13px; font-weight:800; }.today-chip span { color:var(--muted); font-weight:600; }
.top-nav { margin-left:auto; display:flex; align-items:center; gap:5px; padding:4px; border-radius:12px; background:#f1efe9; }.top-nav a { display:flex; align-items:center; gap:7px; padding:8px 12px; border-radius:9px; color:#626465; text-decoration:none; font-size:12px; font-weight:900; }.top-nav a.active { background:#fff; color:var(--teal-dark); box-shadow:0 2px 8px #292b2c12; }.live-dot { width:8px; height:8px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 3px var(--coral-soft); }.top-nav+.today-chip { margin-left:10px; }
.workspace { display:grid; grid-template-columns:300px minmax(0,1fr); min-height:calc(100vh - 78px); }
.student-rail { background:var(--teal-dark); border-right:1px solid #222425; padding:22px 15px; position:sticky; top:78px; height:calc(100vh - 78px); overflow:hidden; }
.search-box { height:44px; display:flex; align-items:center; gap:9px; background:white; border:1px solid #d3dcda; border-radius:12px; padding:0 13px; box-shadow:0 4px 15px #17333d0a; }
.search-box span { font-size:24px; transform:rotate(-15deg); color:var(--teal); }.search-box input { width:100%; border:0; outline:0; color:var(--ink); background:transparent; }
.rail-heading { display:flex; justify-content:space-between; align-items:end; padding:18px 8px 10px; color:#fff; }.rail-heading span { font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }.rail-heading small { color:#b8bbbb; font-size:10px; }
.student-list { overflow:auto; height:calc(100% - 90px); padding-right:2px; }
.student-item { width:100%; border:0; background:transparent; padding:10px; display:flex; align-items:center; gap:10px; border-radius:12px; color:#fff; text-align:left; margin-bottom:3px; }
.student-item:hover { background:#ffffff12; }.student-item.active { background:var(--teal); box-shadow:0 7px 20px #00000022; }
.avatar { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; border-radius:50%; background:var(--yellow); color:var(--teal-dark); font-size:12px; font-weight:900; }
.student-item.active .avatar { background:var(--yellow); color:#242526; }.student-item-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }.student-item-copy strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:13px; }.student-item-copy small { color:#bec2c2; font-size:11px; }.student-item.active .student-item-copy small { color:#fff5f2; }.chevron { margin-left:auto; font-size:22px; color:#b8bbbb; }
.student-view { padding:32px clamp(22px,4vw,58px) 60px; max-width:1450px; width:100%; margin:auto; }
.notice { background:var(--yellow-soft); color:#4b4624; border:1px solid #e3d64c; padding:12px 15px; border-radius:12px; margin-bottom:18px; display:flex; justify-content:space-between; }.notice button { border:0; background:transparent; font-size:18px; color:inherit; }
.profile-head { display:flex; align-items:flex-end; justify-content:space-between; gap:22px; margin-bottom:24px; }.profile-head h2 { font-family:Georgia, serif; font-size:38px; line-height:1; margin:5px 0 13px; letter-spacing:-.025em; }.tags { display:flex; flex-wrap:wrap; gap:8px; }.tags span { padding:6px 9px; border-radius:999px; background:var(--yellow-soft); color:#4a4526; font-size:11px; font-weight:800; }.tags .confidence.low { background:var(--coral-soft); color:#9a3f31; }.tags .confidence.high { background:#e4eadf; color:#48663d; }
.profile-identity { display:flex; align-items:center; gap:18px; min-width:0; }.profile-photo { width:92px; height:92px; flex:0 0 92px; display:grid; place-items:center; overflow:hidden; border-radius:24px; background:var(--yellow); color:var(--teal-dark); border:3px solid #fff; box-shadow:0 7px 22px #292b2c1c; font-size:24px; font-weight:950; }.profile-photo img { width:100%; height:100%; display:block; object-fit:cover; }.profile-actions { display:flex; flex-direction:column; align-items:stretch; gap:9px; }.photo-upload-button { position:relative; border:1px solid #e3a99f; border-radius:11px; padding:10px 15px; background:#fff; color:#a84738; text-align:center; font-size:12px; font-weight:900; cursor:pointer; }.photo-upload-button:hover { background:var(--coral-soft); }.photo-upload-button.disabled { opacity:.65; cursor:wait; }.photo-upload-button input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.left-class-button { order:-1; border:0; border-radius:11px; padding:11px 15px; background:var(--teal-dark); color:#fff; font-size:12px; font-weight:900; }.left-class-button:hover { background:#171819; }.live-empty { width:min(620px,calc(100% - 32px)); margin:12vh auto 0; padding:52px; border:1px solid var(--line); border-radius:24px; background:var(--card); text-align:center; box-shadow:0 16px 45px #292b2c0e; }.live-empty-mark { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 19px; border-radius:18px; background:var(--coral-soft); color:var(--teal); font-size:22px; }.live-empty h2 { margin:6px 0 12px; font-family:Georgia,serif; font-size:30px; }.live-empty>p:not(.eyebrow) { max-width:470px; margin:0 auto 25px; color:var(--muted); line-height:1.6; }.home-link { display:inline-block; text-decoration:none; }
.primary-button { border:0; border-radius:11px; padding:12px 17px; color:white; background:var(--teal); font-weight:800; box-shadow:0 8px 24px #ef705c35; }.primary-button:hover { background:#d85847; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr); gap:18px; align-items:start; }
.card { background:var(--card); border:1px solid var(--line); border-radius:18px; box-shadow:0 10px 35px #15343d0b; padding:22px; overflow:hidden; }.card h3 { margin:2px 0 0; font-family:Georgia, serif; font-size:21px; }.card-title { display:flex; align-items:center; gap:11px; margin-bottom:18px; }
.icon-badge { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; background:var(--coral-soft); color:var(--teal); font-weight:900; }.icon-badge.orange { background:var(--yellow-soft); color:var(--teal-dark); }.icon-badge.pale { background:#ebebe5; }
.snapshot-title { align-items:center; }.history-button { margin-left:auto; border:1px solid #d7c83c; border-radius:10px; padding:9px 12px; background:var(--yellow-soft); color:var(--teal-dark); font-size:11px; font-weight:900; white-space:nowrap; }.history-button:hover { background:var(--yellow); }
.card-actions,.plan-tools { margin-left:auto; display:flex; align-items:center; gap:8px; }.edit-button,.mini-edit,.record-edit { border:1px solid #e3a99f; border-radius:9px; padding:8px 11px; background:#fff; color:#a84738; font-size:11px; font-weight:900; }.edit-button:hover,.mini-edit:hover,.record-edit:hover { background:var(--coral-soft); }.mini-edit { margin-left:auto; }.record-edit { align-self:start; }
.snapshot-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.snapshot-grid div { border-top:1px solid var(--line); padding-top:12px; }.snapshot-grid div:first-child { grid-column:1/-1; }.snapshot-grid h4 { margin:0 0 5px; color:var(--teal-dark); font-size:12px; text-transform:uppercase; letter-spacing:.06em; }.snapshot-grid p { margin:0; color:#526368; font-size:13px; line-height:1.55; }
.tips-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; }.tips-list li { display:flex; gap:11px; color:#505354; font-size:13px; line-height:1.5; }.tips-list li span { flex:0 0 25px; height:25px; display:grid; place-items:center; border-radius:50%; background:var(--yellow); color:var(--teal-dark); font-weight:900; font-size:11px; }
.plan-card { grid-column:1/-1; position:relative; padding:25px 27px 22px; }.plan-stripe { position:absolute; inset:0 auto 0 0; width:7px; background:var(--yellow); }.plan-topline { display:flex; justify-content:space-between; gap:20px; align-items:start; }.plan-count { padding:6px 10px; border-radius:999px; background:var(--coral-soft); color:#873d31; font-size:11px; font-weight:800; }.plan-copy { max-width:950px; margin:17px 0; color:#424546; line-height:1.65; font-size:15px; }.plan-footer { border-top:1px solid var(--line); padding-top:14px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--muted); font-size:12px; }.plan-footer button { border:0; background:transparent; color:var(--teal); font-weight:900; }
.recent-card { grid-column:1/-1; }.log-list { display:grid; gap:1px; }.log-item { display:grid; grid-template-columns:66px 1fr; gap:14px; padding:12px 0; border-top:1px solid var(--line); }.log-item time { color:var(--teal); font-size:12px; font-weight:900; }.log-item strong { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:13px; line-height:1.45; }.log-item p { margin:4px 0 0; color:var(--muted); font-size:11px; text-transform:capitalize; }.empty-state { margin:0; padding:18px; border-radius:12px; color:var(--muted); background:#f3f4ef; text-align:center; font-size:13px; }
.modal-backdrop { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:20px; background:#242526d9; backdrop-filter:blur(5px); }.log-modal { width:min(680px,100%); max-height:92vh; overflow:auto; background:#fffefa; border-radius:20px; padding:25px; box-shadow:0 30px 80px #111111b0; }.modal-header { display:flex; justify-content:space-between; align-items:start; }.modal-header h3 { margin:4px 0 0; font-family:Georgia, serif; font-size:28px; }.modal-header button { border:0; background:transparent; font-size:27px; color:var(--muted); }.planned-task { margin:18px 0; padding:14px; border-radius:12px; background:var(--yellow-soft); border-left:4px solid var(--yellow); }.planned-task span { color:#a24335; font-size:11px; font-weight:900; text-transform:uppercase; }.planned-task p { margin:6px 0 0; font-size:13px; line-height:1.45; color:#4d4f50; }.log-modal label { display:grid; gap:7px; margin:13px 0; font-size:12px; font-weight:900; color:#464849; }.log-modal input,.log-modal textarea,.log-modal select { width:100%; padding:11px 12px; border:1px solid #d0d0ca; border-radius:10px; background:white; color:var(--ink); outline:0; }.log-modal input:focus,.log-modal textarea:focus,.log-modal select:focus { border-color:var(--teal); box-shadow:0 0 0 3px #ef705c20; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:19px; }.secondary-button { border:1px solid #d0d0ca; border-radius:11px; padding:11px 17px; background:white; color:var(--ink); font-weight:800; }
.history-modal { width:min(900px,100%); max-height:92vh; overflow:auto; background:#fffefa; border-radius:20px; padding:26px; box-shadow:0 30px 80px #111111b0; }.history-subtitle { margin:7px 0 0; color:var(--muted); font-size:12px; }.history-section { margin-top:25px; }.history-section>h4 { margin:0 0 10px; color:var(--teal-dark); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }.history-timeline { border-top:1px solid var(--line); }.history-entry { display:grid; grid-template-columns:145px 1fr; gap:20px; padding:18px 4px; border-bottom:1px solid var(--line); }.history-entry.new-entry { background:var(--yellow-soft); padding-left:12px; padding-right:12px; }.history-date { display:flex; flex-direction:column; gap:5px; }.history-date strong { font-size:12px; color:var(--teal-dark); }.history-date span,.history-entry small { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.history-entry h5 { margin:0 0 6px; font-size:14px; }.history-entry p { margin:0 0 7px; color:#4b4d4e; font-size:12px; line-height:1.58; }.preline { white-space:pre-line; }
.editor-modal { width:min(820px,100%); max-height:92vh; overflow:auto; background:#fffefa; border-radius:20px; padding:26px; box-shadow:0 30px 80px #111111b0; }.editor-modal label { display:grid; gap:7px; margin:14px 0; color:#464849; font-size:12px; font-weight:900; }.editor-modal label small { color:var(--muted); font-weight:600; }.editor-modal input,.editor-modal textarea { width:100%; border:1px solid #d0d0ca; border-radius:10px; padding:11px 12px; background:#fff; color:var(--ink); outline:0; }.editor-modal input:focus,.editor-modal textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px #ef705c20; }.plan-edit-list { margin-top:20px; display:grid; gap:10px; }.plan-edit-row { display:grid; grid-template-columns:58px 1fr auto; gap:10px; align-items:start; }.plan-edit-row>span { padding-top:11px; color:var(--teal-dark); font-size:11px; font-weight:900; }.plan-edit-row textarea { resize:vertical; }.plan-edit-row>button { border:0; background:transparent; color:#a84738; padding:11px 5px; font-size:11px; font-weight:900; }.add-day-button { width:100%; margin-top:14px; padding:12px; border:1px dashed #d69b90; border-radius:11px; background:var(--coral-soft); color:#943e31; font-weight:900; }.history-editor { width:min(680px,100%); }
@media (max-width:950px) { .workspace { grid-template-columns:250px minmax(0,1fr); }.dashboard-grid { grid-template-columns:1fr; }.plan-card,.recent-card { grid-column:auto; }.summary-card,.tips-card { grid-column:auto; }.snapshot-grid { grid-template-columns:1fr; }.snapshot-grid div:first-child { grid-column:auto; } }
@media (max-width:720px) { .topbar { height:auto; min-height:78px; padding:10px 16px; flex-wrap:wrap; }.topbar>div:nth-child(2) { display:block; }.top-nav { order:3; width:100%; }.top-nav a { flex:1; justify-content:center; }.today-chip { margin-left:auto; }.top-nav+.today-chip { margin-left:auto; }.workspace { display:block; }.student-rail { position:static; width:100%; height:auto; border-right:0; border-bottom:1px solid var(--line); padding:14px; }.student-list { height:auto; max-height:230px; }.student-view { padding:25px 16px 45px; }.profile-head { align-items:stretch; flex-direction:column; }.profile-head h2 { font-size:32px; }.profile-photo { width:76px; height:76px; flex-basis:76px; border-radius:20px; }.profile-actions { width:100%; }.primary-button { width:100%; }.form-row { grid-template-columns:1fr; }.plan-footer { align-items:flex-start; flex-direction:column; }.snapshot-title { align-items:flex-start; flex-wrap:wrap; }.card-actions { width:100%; margin-left:0; }.history-button,.edit-button { flex:1; margin-left:0; }.history-entry { grid-template-columns:1fr; gap:8px; }.plan-edit-row { grid-template-columns:48px 1fr; }.plan-edit-row>button { grid-column:2; justify-self:end; padding-top:0; }.live-empty { margin-top:7vh; padding:36px 22px; } }

.session-chip { position:fixed; right:16px; bottom:14px; font-size:11px; color:var(--muted); display:flex; align-items:center; gap:10px; background:#fffefaee; padding:7px 12px; border-radius:999px; border:1px solid var(--line); box-shadow:0 6px 18px #292b2c14; z-index:60; }
.session-chip strong { color:var(--ink); }
.session-chip button { border:0; background:transparent; color:var(--teal); font-weight:900; cursor:pointer; padding:0; font-size:11px; }
.session-chip button:hover { text-decoration:underline; }

.login-shell { min-height:100vh; display:grid; place-items:center; background:var(--paper); padding:20px; }
.login-card { width:min(360px,100%); background:var(--card); border:1px solid var(--line); border-radius:24px; padding:36px 30px; box-shadow:0 20px 55px #292b2c14; text-align:center; }
.login-card .brand-logo { margin:0 auto 18px; }
.login-card h1 { margin:0 0 6px; font-family:Georgia, serif; font-size:24px; }
.login-card p.login-sub { margin:0 0 24px; color:var(--muted); font-size:13px; }
.pin-dots { display:flex; justify-content:center; gap:12px; margin-bottom:22px; }
.pin-dots span { width:14px; height:14px; border-radius:50%; border:2px solid var(--line); background:transparent; }
.pin-dots span.filled { background:var(--teal); border-color:var(--teal); }
.pin-error { min-height:18px; margin:-10px 0 14px; color:#a84738; font-size:12px; font-weight:800; }
.pin-pad { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.pin-key { height:58px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); font-size:20px; font-weight:800; }
.pin-key:hover { background:var(--coral-soft); border-color:#e3a99f; }
.pin-key.wide { grid-column:span 1; font-size:13px; color:var(--muted); font-weight:900; }
.add-student-button { width:100%; margin-top:10px; padding:10px 12px; border:1px dashed #d69b90; border-radius:11px; background:var(--coral-soft); color:#943e31; font-weight:900; font-size:12px; }
.add-student-modal { width:min(460px,100%); }

/* --- attendance-days filter in the student rail --- */
.student-rail { display:flex; flex-direction:column; }
.days-filter { margin-top:10px; display:grid; gap:6px; min-width:0; }
.days-filter select { width:100%; height:38px; padding:0 9px; border:1px solid #d3dcda; border-radius:11px; background:#fff; color:var(--ink); font-size:12px; font-weight:700; outline:0; }
.days-filter select:focus, .days-filter-manual input:focus { border-color:var(--teal); box-shadow:0 0 0 3px #ef705c40; }
.days-filter-manual { display:flex; align-items:center; gap:5px; min-width:0; padding:0 2px; color:#c2c5c5; font-size:11px; font-weight:800; }
.days-filter-manual em { flex:0 0 auto; font-style:normal; color:#8b8f90; }
.days-filter-manual span { flex:0 0 auto; }
.days-filter-manual input { flex:1 1 0; width:0; min-width:0; height:31px; padding:0 4px; border:1px solid #55585a; border-radius:9px; background:#2b2d2f; color:#fff; font-size:12px; font-weight:800; text-align:center; outline:0; }
.days-filter-manual input::placeholder { color:#75797b; font-weight:600; }
.days-filter-clear { flex:0 0 auto; margin-left:auto; border:0; background:transparent; color:#f0a091; font-size:11px; font-weight:900; padding:4px 1px; }
.days-filter-clear:hover { color:#fff; }
.rail-heading { flex-wrap:wrap; gap:2px 6px; }
/* The list takes the leftover height, so it is ordered after #railEmpty to
   keep the "nothing matched" note directly under the heading. */
.student-list { flex:1 1 auto; min-height:0; height:auto; order:1; }
.rail-empty { margin:8px 3px; padding:14px 12px; border:1px dashed #4d5052; border-radius:12px; color:#b8bbbb; font-size:12px; line-height:1.5; text-align:center; }

/* --- owner-only student record editing and archive --- */
.archived-toggle { width:100%; margin-top:8px; padding:9px 12px; border:1px solid #4d5052; border-radius:11px; background:transparent; color:#c2c5c5; font-size:11px; font-weight:800; }
.archived-toggle:hover { background:#ffffff12; color:#fff; }
.archived-toggle.active { background:var(--yellow-soft); border-color:var(--yellow); color:#4a4526; }
.edit-details-button { margin-top:11px; border:1px solid #d3c9c6; border-radius:10px; padding:8px 12px; background:#fff; color:#6b524c; font-size:11px; font-weight:900; }
.edit-details-button:hover { background:var(--coral-soft); border-color:#e3a99f; color:#a84738; }
.archived-banner { margin-bottom:18px; padding:12px 16px; border:1px solid #dad6c6; border-left:4px solid var(--muted); border-radius:12px; background:#f1efe7; color:#57584f; font-size:13px; line-height:1.55; }
.archived-banner strong { color:var(--ink); }
.editor-modal select { width:100%; border:1px solid #d0d0ca; border-radius:10px; padding:11px 12px; background:#fff; color:var(--ink); outline:0; }
.editor-modal select:focus { border-color:var(--teal); box-shadow:0 0 0 3px #ef705c20; }
.details-editor input:disabled { background:#f1efe9; color:var(--muted); cursor:not-allowed; }
.detail-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:16px 0 0; padding:12px 14px; border:1px solid var(--line); border-radius:12px; color:#464849; font-size:12px; font-weight:900; }
.detail-row em { font-style:normal; color:var(--muted); font-weight:600; }
.danger-link { border:0; background:transparent; color:#a84738; font-size:12px; font-weight:900; padding:0; text-decoration:underline; }
.danger-link:hover { color:#7f3327; }
.danger-zone { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; padding:16px; border:1px dashed #d69b90; border-radius:12px; background:#fdf4f1; }
.danger-zone strong { display:block; font-size:13px; color:#8d392c; }
.danger-zone p { margin:5px 0 0; max-width:430px; color:#6d5b57; font-size:12px; line-height:1.5; }
.archive-button { flex:0 0 auto; border:1px solid #c9705f; border-radius:11px; padding:10px 15px; background:#fff; color:#a84738; font-size:12px; font-weight:900; white-space:nowrap; }
.archive-button:hover { background:var(--teal); border-color:var(--teal); color:#fff; }
.restore-button { flex:0 0 auto; border:1px solid #7fa06d; border-radius:11px; padding:10px 15px; background:#fff; color:#4c6b3c; font-size:12px; font-weight:900; white-space:nowrap; }
.restore-button:hover { background:#4c6b3c; border-color:#4c6b3c; color:#fff; }
@media (max-width:720px) { .danger-zone { flex-direction:column; align-items:stretch; }.danger-zone p { max-width:none; }.archive-button,.restore-button { width:100%; } }

/* --- identity badges: nationality and program phase --- */
.identity-badges { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
.identity-badge { display:inline-flex; align-items:center; gap:7px; padding:6px 11px; border:1px solid var(--line); border-radius:999px; background:var(--card); color:#4c4e4f; font-size:11px; font-weight:800; }
/* Flag emoji sit optically high against the text cap-height even when their
   boxes are centred, so nudge them down a pixel. */
.identity-badge i { position:relative; top:1px; font-style:normal; font-size:15px; line-height:1; }
.identity-badge.muted { border-style:dashed; color:var(--muted); font-weight:700; }
.identity-badge.program { border-color:#cfe0c6; background:#eef4ea; color:#41633a; }
.identity-badge.program strong { font-weight:900; }
.identity-badge.program em { font-style:normal; color:#6d8b64; font-weight:700; }
.identity-badge.program em::before { content:"·"; margin-right:6px; }
