:root {
 --vmfc-bg:#f4f3ed; --vmfc-paper:#fff; --vmfc-ink:#172e2c; --vmfc-muted:#576966;
 --vmfc-accent:#155d50; --vmfc-soft:#e8f0e8; --vmfc-line:#d4ddd5; --vmfc-danger:#9c3029;
 --vmfc-focus:#995600; --vmfc-shadow:0 12px 32px rgba(23,46,44,.06);
}
* { box-sizing:border-box; }
.vmfc-page { margin:0; padding:32px; background:var(--vmfc-bg); color:var(--vmfc-ink); font:17px/1.5 system-ui,-apple-system,sans-serif; }
.vmfc-shell { max-width:1440px; margin:auto; }
.vmfc-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:26px; }
.vmfc-eyebrow { margin:0 0 10px; font-size:.75rem; font-weight:750; letter-spacing:.12em; text-transform:uppercase; color:var(--vmfc-accent); }
.vmfc-page h1 { margin:0; font-size:clamp(2rem,4vw,3.6rem); line-height:1.1; letter-spacing:-.04em; }
.vmfc-lead { color:var(--vmfc-muted); margin:14px 0 0; font-size:1.1rem; }
.vmfc-tag,.vmfc-pill { border:1px solid var(--vmfc-line); border-radius:30px; padding:7px 14px; white-space:nowrap; font-size:.85rem; }
.vmfc-toolbar { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:20px; color:var(--vmfc-muted); font-size:.9rem; }
.vmfc-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:22px; align-items:stretch; }
.vmfc-panel,.vmfc-login,.vmfc-controls,.vmfc-notice { background:var(--vmfc-paper); border:1px solid var(--vmfc-line); border-radius:18px; padding:26px; box-shadow:var(--vmfc-shadow); }
.vmfc-page h2 { margin:0 0 16px; font-size:1.35rem; line-height:1.25; }
.vmfc-join { background:var(--vmfc-soft); }
.vmfc-qr { display:block; width:100%; max-width:280px; height:auto; margin:24px auto; background:var(--vmfc-paper); border-radius:10px; }
.vmfc-link { overflow-wrap:anywhere; font-size:.8rem; }
.vmfc-page a,.vmfc-share a { color:var(--vmfc-accent); }
.vmfc-small { font-size:.83rem; color:var(--vmfc-muted); }
.vmfc-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.vmfc-pill { background:var(--vmfc-soft); border:0; }
.vmfc-empty { text-align:center; padding:52px 10px; color:var(--vmfc-muted); }
.vmfc-empty h3 { color:var(--vmfc-ink); }
.vmfc-empty-mark { font-size:3rem; color:var(--vmfc-accent); }
.vmfc-table-wrap { overflow-x:auto; }
.vmfc-page table { width:100%; border-collapse:collapse; margin:20px 0; }
.vmfc-page th { font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--vmfc-muted); text-align:left; }
.vmfc-page th,.vmfc-page td { padding:16px 12px; border-bottom:1px solid var(--vmfc-line); overflow-wrap:anywhere; }
.vmfc-page th:first-child,.vmfc-page td:first-child { padding-left:0; }
.vmfc-page td:first-child { font-size:1.25rem; font-weight:650; }
.vmfc-page td:last-child { font-size:1.4rem; font-weight:750; color:var(--vmfc-accent); text-align:center; }
.vmfc-pedagogy { background:var(--vmfc-soft); border-left:3px solid var(--vmfc-accent); padding:16px; margin:28px 0 0; }
.vmfc-controls { margin-top:22px; }
.vmfc-control-grid { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.vmfc-page label { display:block; font-size:.9rem; font-weight:650; margin:0 0 8px; }
.vmfc-page input { width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--vmfc-line); border-radius:8px; font:inherit; color:var(--vmfc-ink); background:var(--vmfc-paper); }
.vmfc-inline { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.vmfc-inline input { flex:1; min-width:160px; }
.vmfc-btn { min-height:46px; border:1px solid var(--vmfc-accent); border-radius:8px; padding:10px 17px; color:var(--vmfc-paper); background:var(--vmfc-accent); font:600 .92rem/1.3 system-ui,sans-serif; cursor:pointer; }
.vmfc-secondary { color:var(--vmfc-accent); background:var(--vmfc-paper); }
.vmfc-danger { color:var(--vmfc-danger); border-color:var(--vmfc-danger); background:var(--vmfc-paper); }
.vmfc-page :focus-visible,.vmfc-share :focus-visible { outline:3px solid var(--vmfc-focus); outline-offset:3px; }
.vmfc-login { max-width:480px; margin:50px auto; }
.vmfc-login button { margin-top:18px; width:100%; }
.vmfc-footer { padding:24px 0 8px; font-size:.82rem; color:var(--vmfc-muted); }
.vmfc-share { background:var(--vmfc-soft); color:var(--vmfc-ink); padding:18px; margin-top:24px; border:1px solid var(--vmfc-line); border-radius:10px; }
.vmfc-share h3 { margin-top:0; }
.vmfc-share label { display:block; margin-bottom:7px; font-weight:650; }
.vmfc-share input { background:var(--vmfc-paper) !important; color:var(--vmfc-ink) !important; }
.vmfc-share button.btn { background:var(--vmfc-accent); color:var(--vmfc-paper); border-color:var(--vmfc-accent); }
.vmfc-share [role=status] { font-weight:650; }
.vmfc-placeholder { padding:36px 0; color:var(--vmfc-muted); }
.vmfc-notice { max-width:850px; }
.vmfc-notice h1 { font-size:2.5rem; }
.vmfc-notice h2 { margin-top:28px; }
.vmfc-notice dt { font-weight:700; margin-top:14px; }
.vmfc-notice dd { margin-left:0; }
.vmfc-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
[hidden] { display:none !important; }
@media(max-width:850px) { .vmfc-page { padding:18px; } .vmfc-layout { grid-template-columns:1fr; } .vmfc-heading { flex-direction:column; } .vmfc-join { text-align:center; } .vmfc-panel,.vmfc-controls { padding:20px; } }
@media print { .vmfc-controls,.vmfc-toolbar,.vmfc-join { display:none; } .vmfc-layout { display:block; } }
