@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{--bg:#f3f4ef;--bg-soft:#e3e8db;--card:#fcfcf8;--text:#1f2a24;--muted:#5f6d63;--line:#d4dccd;--accent:#1e8067;--accent-strong:#14614f;--danger:#b64239;--warn:#b26a18;--safe:#1d7d4f;--shadow:0 16px 35px -18px #1c382e59}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 10% 10%,#dae4d3 0%,#0000 35%),radial-gradient(circle at 100% 0,#d9e8dd 0%,#0000 30%),linear-gradient(#f8faf5 0%,#eef3e9 100%);margin:0;font-family:IBM Plex Sans,sans-serif}html{font-size:16px}h1,h2,h3,h4{margin:0;font-family:Space Grotesk,sans-serif}.screen{width:min(1100px,100% - 2rem);min-height:100vh;margin:0 auto;padding:2.2rem 0 3.5rem}.center,.auth-bg{place-items:center;display:grid}.auth-card{border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fcfcf8e6;border-radius:20px;padding:2rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0;font-size:.76rem}.volunteer-since{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.subtitle{color:var(--muted);margin:.8rem 0 1.2rem}.segment{border:1px solid var(--line);border-radius:999px;gap:.2rem;margin:.4rem 0 1.2rem;padding:.2rem;display:inline-flex}.segment button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.45rem 1rem;font-weight:600}.segment button.active{background:var(--accent);color:#fff}.form-grid{gap:.9rem;display:grid}.form-grid.inline{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}label{color:var(--muted);gap:.35rem;font-size:.92rem;display:grid}input,select{border:1px solid var(--line);width:100%;color:var(--text);font:inherit;background:#fff;border-radius:12px;padding:.68rem .8rem}.thumb-preview{border:1px solid var(--line);border-radius:8px;max-width:140px;max-height:100px;margin-top:.5rem}input:focus{outline:2px solid color-mix(in srgb, var(--accent) 35%, #fff);border-color:var(--accent)}input.input-error,input.input-error:focus{border-color:var(--danger);outline-color:color-mix(in srgb, var(--danger) 30%, #fff)}.password-field{position:relative}.password-field input{padding-right:2.5rem}.password-field button{cursor:pointer;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;line-height:1;display:inline-flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.password-field button:hover{color:var(--text)}button{font:inherit}.primary,.ghost,.danger{cursor:pointer;border:none;border-radius:12px;padding:.7rem 1rem;font-weight:600}.primary{background:var(--accent);color:#fff}.primary:hover{background:var(--accent-strong)}.ghost{color:var(--text);border:1px solid var(--line);background:#f0f4ee}.danger{color:var(--danger);background:#f6dfdc}button:disabled{opacity:.6;cursor:not-allowed}.hint,.feedback,.empty{color:var(--muted);margin:.6rem 0 0}.app-header{border:1px solid var(--line);box-shadow:var(--shadow);background:#fcfcf8e0;border-radius:18px;justify-content:space-between;align-items:center;padding:1.2rem 1.3rem;display:flex}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fcfcf8e6;border-radius:18px;margin-top:1rem;padding:1.2rem}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;display:flex}.card-header-main{flex-direction:column;flex:auto;gap:.75rem;min-width:0;display:flex}.card-header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.card-header-actions p{color:var(--muted,#666);margin:0;font-size:.85rem}.sort-select{width:140px!important}.export-btn{align-self:flex-start;align-items:center;gap:6px;width:fit-content;display:inline-flex}.form-actions{gap:10px;margin-top:12px;display:flex}.form-actions>button{flex:1 1 0;width:auto;min-width:0}.filters-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (width<=640px){.card-header{flex-direction:column;align-items:stretch}.card-header-actions{justify-content:space-between}}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem;display:grid}.certificate{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;justify-content:space-between;gap:.9rem;padding:.9rem;display:flex}.certificate p{color:var(--muted);margin:.3rem 0}.certificate-actions{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.certificate-actions a{color:var(--accent-strong);font-weight:600;text-decoration:none}.tag{border-radius:999px;margin-top:.5rem;padding:.2rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.tag.safe{color:var(--safe);background:#ddf4e7}.tag.warn{color:var(--warn);background:#faefd9}.tag.danger{color:var(--danger);background:#f7dfdd}.tag.muted{color:#555;background:#e5e7eb}tbody tr.history{background:#f3f4f6}tbody tr.history td{color:#4b5563}.history-toggle-row{justify-content:flex-start;margin-top:1rem;margin-bottom:.75rem;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:780px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:.85rem;font-size:1rem}td span{color:var(--muted);font-size:.83rem;display:block}td a{color:var(--accent-strong);font-weight:600;text-decoration:none}.fade-up{animation:.55s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=920px){.form-grid.inline{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:flex-start;gap:.8rem}}.image-modal{z-index:1200;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.image-modal-card{background:#fff;border-radius:10px;max-width:92%;max-height:92%;padding:1rem;box-shadow:0 20px 50px #00000080}.overlay-modal-card{background:#fff;border-radius:12px;width:min(640px,96%);max-height:90vh;padding:1.2rem 1.4rem;overflow:auto;box-shadow:0 30px 70px #00000073}.form-list{flex-direction:column;gap:.9rem;display:flex}.form-list label{display:block}.form-list .primary{width:180px}.card-header select{flex-shrink:0;width:280px}a.ghost,a.primary,a.danger{text-decoration:none;display:inline-block}a.ghost.nav-active{background:var(--accent);color:#fff;border-color:var(--accent)}.global-loading{z-index:2000;background:#1f2a2473;place-items:center;display:grid;position:fixed;inset:0}.global-loading-box{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;align-items:center;gap:.85rem;padding:1.4rem 1.9rem;display:flex}.global-loading-box p{color:var(--text);margin:0;font-weight:600}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tag.open{color:#1f5a99;background:#dceafa}.course-catalog{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.course-catalog-item{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.course-catalog-name{font-weight:600}.course-catalog-item .tag{margin-top:0}textarea{border:1px solid var(--line);width:100%;color:var(--text);font:inherit;resize:vertical;background:#fff;border-radius:12px;padding:.68rem .8rem}textarea:focus{outline:2px solid color-mix(in srgb, var(--accent) 35%, #fff);border-color:var(--accent)}.calendar-wrap{display:flex}.calendar-wrap .react-calendar{border:1px solid var(--line);background:#fff;border-radius:14px;width:100%;padding:.8rem;font-family:inherit}.calendar-wrap .react-calendar__navigation{height:48px}.calendar-wrap .react-calendar__navigation button{border-radius:8px;font-size:1rem;font-weight:600}.calendar-wrap .react-calendar__month-view__weekdays{color:var(--muted);font-size:.82rem}.calendar-wrap .react-calendar__tile{border-radius:8px;flex-direction:column;align-items:stretch;gap:4px;min-height:120px;padding:8px 6px;display:flex}.calendar-wrap .react-calendar__tile abbr{align-self:center;font-size:.95rem;font-weight:600}.calendar-wrap .react-calendar__tile--now{background:#e0efe9}.calendar-wrap .react-calendar__tile--active,.calendar-wrap .react-calendar__tile--active:enabled:hover{background:var(--accent);color:#fff}.cal-events{flex-direction:column;gap:2px;width:100%;display:flex}.cal-event-chip{text-align:left;width:100%;color:var(--accent-strong);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#e0efe9;border:none;border-radius:4px;padding:4px 6px;font-size:.85rem;font-weight:600;overflow:hidden}.cal-more{color:var(--muted);font-size:.62rem}.event-meta{color:var(--muted);margin:.6rem 0 0}.event-description{white-space:pre-wrap;margin:.8rem 0 0}
