/* VivaFlow · Agenda semanal (grade com datas) · usa as variáveis de tema do app (--line, --green, --yellow…) */
.vfa{--vfa-today:#14281c;--vfa-today-head:#1a3a27;--vfa-now:#f4cd63;--vfa-hover:#1f2c25;--vfa-cell:#121d17;--vfa-cell-empty:#0f1814;--vfa-head:#192820;--vfa-time:#101a15;--vfa-sep:#203128;--vfa-red:#ff666d;--vfa-yellow:#f1cf4d;--vfa-lilac:#c69cff;--vfa-green:#43db7b;--vfa-blue:#6aa8ff;color:var(--text);font-size:13px}
html[data-theme="light"] .vfa,html[data-theme="soft"] .vfa{--vfa-today:#eef8f1;--vfa-today-head:#d6efdf;--vfa-now:#c99a00;--vfa-hover:#eef3f0;--vfa-cell:#fff;--vfa-cell-empty:#f3f6f4;--vfa-head:#e5eee8;--vfa-time:#eef3f0;--vfa-sep:#dfe7e2;--vfa-red:#c8262e;--vfa-yellow:#9a6c00;--vfa-lilac:#7a3fd1;--vfa-green:#087a3e;--vfa-blue:#175cd3}
html[data-theme="charcoal"] .vfa{--vfa-today:#18241d;--vfa-today-head:#1c3326;--vfa-hover:#262c34;--vfa-cell:#1c2026;--vfa-cell-empty:#171a1f;--vfa-head:#262c34;--vfa-time:#171a1f;--vfa-sep:#2b323b}
.vfa *{box-sizing:border-box}
.vfa-card{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:17px}
.vfa-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.vfa-top h3{margin:0;font-size:22px}
.vfa-sub{color:var(--muted);font-size:12px;margin-top:4px}
.vfa-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.vfa-pill{background:#173523;color:var(--green);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900}
.vfa-btn{border:1px solid var(--line);border-radius:11px;padding:9px 12px;font:inherit;font-weight:800;cursor:pointer;background:var(--panel2);color:var(--text)}
.vfa-btn:hover{border-color:var(--green)}
.vfa-btn.primary{background:var(--green);border-color:var(--green);color:#07130c}
.vfa-btn.danger{background:#3a1d20;border-color:#6b2e33;color:#ffb3b3}
.vfa-btn:disabled{opacity:.5;cursor:not-allowed}
.vfa-week{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.vfa-week strong{min-width:210px;text-align:center;font-size:14px}
.vfa-legend{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin:0 0 10px;padding:8px 10px;border-radius:9px;background:var(--vfa-time);color:var(--muted);font-size:12px}
.vfa-legend span{display:flex;align-items:center;gap:5px}
.vfa-dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.vfa-wrap{overflow:auto;padding:0;margin:4px 0 8px;max-height:calc(100vh - 150px);border-radius:14px}
.vfa.expanded .vfa-wrap{max-height:calc(100vh - 190px)}
.vfa-board{display:grid;border:1px solid var(--line);border-radius:14px;overflow:visible}
.vfa-head{position:sticky;top:0;z-index:3;background:var(--vfa-head);color:var(--text);font-size:14px;font-weight:900;padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);line-height:1.25}
.vfa-head small{display:block;color:var(--muted);font-weight:700;font-size:12px;margin-top:2px}
.vfa-head.vfa-corner{left:0;z-index:4;color:var(--green);font-size:13px}
.vfa-head.today{background:var(--vfa-today-head);color:var(--green);box-shadow:inset 0 -3px 0 var(--green)}
.vfa-head.today small{color:var(--green)}
.vfa-head.past{color:color-mix(in srgb,var(--text) 80%,var(--muted))}
.vfa-period{grid-column:1/-1;padding:7px 13px;font-size:11px;letter-spacing:1.3px;font-weight:900;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--line)}
.vfa-period.morning{background:#183324;color:#70e8a0}
.vfa-period.afternoon{background:#332b18;color:#f3d36f}
html[data-theme="light"] .vfa-period.morning,html[data-theme="soft"] .vfa-period.morning{background:#dcefe3;color:#087a3e}
html[data-theme="light"] .vfa-period.afternoon,html[data-theme="soft"] .vfa-period.afternoon{background:#f6ecd0;color:#815d00}
.vfa-time{position:sticky;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;gap:2px;justify-content:flex-start;background:var(--vfa-time);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 6px;color:var(--yellow);font-size:13px;font-weight:900}
.vfa-time small{font-size:10px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.vfa-time.now{background:color-mix(in srgb,var(--vfa-now) 20%,var(--vfa-time));box-shadow:inset 3px 0 0 var(--vfa-now)}
.vfa-time.now small{background:var(--vfa-now);color:#14110a;border-radius:5px;padding:1px 5px}
.vfa-cell{background:var(--vfa-cell);padding:8px 8px 10px;min-height:66px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.vfa-cell.empty{background:var(--vfa-cell-empty)}
.vfa-cell.past{background:var(--vfa-cell-empty)}
.vfa-cell.today{background:var(--vfa-today)}
.vfa-cell.now{box-shadow:inset 0 0 0 2px var(--vfa-now)}
.vfa-cell.past .vfa-name{color:color-mix(in srgb,var(--text) 84%,var(--muted))}
.vfa-cell.closed{background:repeating-linear-gradient(135deg,var(--vfa-cell-empty) 0 8px,var(--vfa-cell) 8px 16px)}
.vfa-cell.drop{background:#193025;outline:2px dashed var(--green);outline-offset:-3px}
.vfa-closed-note{color:var(--muted);font-size:11px;font-weight:800;margin-bottom:4px}
.vfa-cell-name{color:var(--muted);font-size:11px;font-weight:800;margin-bottom:3px}
.vfa-person{display:flex;align-items:center;gap:3px;cursor:grab;border-left:3px solid transparent;padding-left:2px;border-radius:7px;margin:1px 0}
.vfa-person:hover{background:var(--vfa-hover)}
.vfa-person.dragging{opacity:.35}
.vfa-person.static{cursor:default}
.vfa-drag{color:#668174;font-size:12px;letter-spacing:-3px;padding-right:2px;user-select:none}
.vfa-name{flex:1;min-width:0;padding:6px 4px;border:0;background:transparent;color:var(--text);font:inherit;font-size:14px;line-height:1.25;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vfa-name:hover{color:var(--green)}
.vfa-tag{flex:0 0 auto;font-size:10px;font-weight:900;border-radius:999px;padding:2px 6px;white-space:nowrap}
.vfa-x{flex:0 0 25px;width:25px;height:25px;border:0;border-radius:6px;background:transparent;color:#a9b9b0;font:inherit;font-size:17px;line-height:1;cursor:pointer}
.vfa-x:hover{background:#492727;color:#ff9e9e}
.vfa-add{display:block;width:100%;height:24px;margin:4px 0 0;padding:0;border:1px dashed #365443;border-radius:6px;background:transparent;color:var(--green);font:inherit;font-size:14px;line-height:16px;font-weight:900;cursor:pointer}
.vfa-add:hover{background:#183324}
.vfa-occ{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.vfa-bar{flex:1;height:4px;border-radius:9px;background:var(--vfa-sep);overflow:hidden;min-width:20px}
.vfa-bar i{display:block;height:100%;border-radius:9px;background:var(--green)}
.vfa-total{flex:0 0 auto;font:inherit;font-size:11px;font-weight:900;border:0;border-radius:999px;padding:3px 9px;cursor:pointer;white-space:nowrap;background:#173523;color:#7ee8a6}
span.vfa-total{cursor:default}
button.vfa-total:hover{filter:brightness(1.25)}
.o-one .vfa-bar i{background:var(--vfa-yellow)}.o-one .vfa-total{background:#3a3214;color:#ffd96a}
.o-full .vfa-bar i{background:var(--vfa-red)}.o-full .vfa-total{background:#3d1d20;color:#ffa0a4}
.o-past .vfa-bar i{background:#6c7680}.o-past .vfa-total{background:var(--vfa-sep);color:color-mix(in srgb,var(--text) 78%,var(--muted))}
/* marcadores da grade fixa */
.vfa-person.hl-blue,.vfa-person.hl-red{background:#16253d;border-left-color:var(--vfa-blue)}
.vfa-person.hl-blue .vfa-name,.vfa-person.hl-red .vfa-name{color:#9cc4ff;font-weight:800}
.vfa-person.hl-yellow{background:#332d16;border-left-color:var(--vfa-yellow)}
.vfa-person.hl-yellow .vfa-name{color:#ffe278;font-weight:800}
.vfa-person.hl-lilac{background:#2b2038;border-left-color:var(--vfa-lilac)}
.vfa-person.hl-lilac .vfa-name{color:#d8bcff;font-weight:800}
.vfa-person.hl-green{background:#173523;border-left-color:var(--vfa-green)}
.vfa-person.hl-green .vfa-name{color:#7eeda6;font-weight:800}
html[data-theme="light"] .vfa-person.hl-blue,html[data-theme="soft"] .vfa-person.hl-blue,html[data-theme="light"] .vfa-person.hl-red,html[data-theme="soft"] .vfa-person.hl-red{background:#e1ecff}
html[data-theme="light"] .vfa-person.hl-yellow,html[data-theme="soft"] .vfa-person.hl-yellow{background:#fff1c2}
html[data-theme="light"] .vfa-person.hl-lilac,html[data-theme="soft"] .vfa-person.hl-lilac{background:#eddffc}
html[data-theme="light"] .vfa-person.hl-green,html[data-theme="soft"] .vfa-person.hl-green{background:#d3f0de}
html[data-theme="light"] .vfa-person.chip,html[data-theme="soft"] .vfa-person.chip{background:#e9efeb}
/* status da data */
.vfa-person.st-cancelled,.vfa-person.st-cancelled_late{background:#35191b;border-left-color:var(--vfa-red)}
.vfa-person.st-cancelled .vfa-name,.vfa-person.st-cancelled_late .vfa-name{color:#ff979b;text-decoration:line-through}
.vfa-person.st-institution_cancelled .vfa-name,.vfa-person.st-moved .vfa-name{color:var(--muted);text-decoration:line-through}
.vfa-person.st-absent{background:#2e2914;border-left-color:var(--vfa-yellow)}
.vfa-person.st-absent .vfa-name{color:#ffe278}
.vfa-person.st-done .vfa-name{color:color-mix(in srgb,var(--text) 84%,var(--muted))}
.vfa-person.st-makeup,.vfa-person.st-extra{background:#16253d;border-left-color:var(--vfa-blue)}
.vfa-person.st-makeup .vfa-name,.vfa-person.st-extra .vfa-name{color:#a9cbff}
.tag-cancelled,.tag-cancelled_late{background:#4a1f23;color:#ffb3b6}
.tag-absent{background:#3d3416;color:#ffe278}
.tag-makeup,.tag-extra{background:#17294a;color:#a9cbff}
.tag-done{background:transparent;color:var(--muted)}
.tag-no_record{background:#2c2f33;color:#cfd6dd}
.tag-moved,.tag-institution_cancelled{background:#2c2f33;color:var(--muted)}
/* menu, janelas e avisos */
.vfa-menu{position:fixed;z-index:60;min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px #0008;padding:6px}
.vfa-menu-title{padding:8px 10px 6px;color:var(--muted);font-size:11px;font-weight:800}
.vfa-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--text);font:inherit;font-size:13px;padding:9px 10px;border-radius:8px;cursor:pointer}
.vfa-menu button:hover{background:var(--panel2);color:var(--green)}
.vfa-menu button.warn{color:#ff9e9e}
.vfa-menu .hint{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.vfa-modal{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:70}
.vfa-dialog{width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:20px}
.vfa-dialog h4{margin:0 0 6px;font-size:17px}
.vfa-dialog p{color:var(--muted);margin:0 0 12px;line-height:1.45}
.vfa-field{display:grid;gap:5px;margin:0 0 12px}
.vfa-field label{font-size:12px;color:var(--muted);font-weight:700}
.vfa-field input,.vfa-field select,.vfa-field textarea{width:100%;background:var(--vfa-time);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:10px;font:inherit}
.vfa-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vfa-check{display:flex;gap:8px;align-items:center;margin:0 0 10px;color:var(--text)}
.vfa-check input{width:16px;height:16px;accent-color:var(--green)}
.vfa-choice{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--vfa-time);color:var(--text);border-radius:11px;padding:11px 12px;margin:0 0 8px;font:inherit;cursor:pointer}
.vfa-choice:hover{border-color:var(--green)}
.vfa-choice b{display:block;margin-bottom:2px}
.vfa-choice span{color:var(--muted);font-size:12px}
.vfa-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;flex-wrap:wrap}
.vfa-error{color:#ff9e9e;font-size:12px;min-height:16px;margin-top:6px}
.vfa-list{border-top:1px solid var(--line)}
.vfa-list div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}
.vfa-section{margin:16px 0 8px;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase}
.vfa-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:80;background:var(--panel);border:1px solid var(--green);color:var(--text);border-radius:12px;padding:11px 16px;box-shadow:0 12px 40px #0008;font-weight:700;max-width:calc(100vw - 32px)}
.vfa-toast.err{border-color:#ff6b6b}
.vfa.expanded{position:fixed;inset:12px;z-index:40;overflow:auto}
.vfa-loading{opacity:.55;pointer-events:none}
@media (max-width:640px){.vfa-top h3{font-size:19px}.vfa-week strong{min-width:0;flex:1}.vfa-row{grid-template-columns:1fr}}
/* símbolos, legenda, seletor Semana/Dia */
.vfa-ic{display:inline-block;width:1.1em;margin-right:3px;font-weight:900;text-align:center}
.vfa-lg{display:inline-flex;width:18px;height:18px;border-radius:5px;align-items:center;justify-content:center;font-style:normal;font-size:11px;font-weight:900}
.lg-red{background:#35191b;color:#ff979b}.lg-yellow{background:#2e2914;color:#ffe278}.lg-blue{background:#16253d;color:#a9cbff}.lg-lilac{background:#2b2038;color:#d8bcff}.lg-green{background:#173523;color:#7eeda6}
.lg-dot::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--vfa-yellow)}
.vfa-seg{display:inline-flex;background:var(--vfa-time);border:1px solid var(--line);border-radius:11px;padding:3px}
.vfa-seg button{border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;padding:6px 12px;border-radius:8px;cursor:pointer}
.vfa-seg button.on{background:var(--panel2);color:var(--text)}
/* esconder controles até passar o mouse (no celular continuam visíveis) */
@media (hover:hover){
  .vfa-drag,.vfa-x{opacity:0;transition:opacity .12s}
  .vfa-person:hover .vfa-drag,.vfa-person:hover .vfa-x,.vfa-person:focus-within .vfa-x{opacity:1}
  .vfa-cell .vfa-add{opacity:1}
}
/* visão Dia (padrão no celular) */
.vfa-tabs{display:flex;gap:6px;margin:0 0 6px}
.vfa-tabs button{flex:1;border:1px solid var(--line);background:var(--vfa-time);color:var(--muted);border-radius:11px;padding:6px 0;font:inherit;font-size:11px;font-weight:800;text-transform:uppercase;cursor:pointer}
.vfa-tabs button b{display:block;font-size:17px;color:var(--text)}
.vfa-tabs button.today{border-color:var(--green)}
.vfa-tabs button.on{background:var(--green);border-color:var(--green);color:#07130c}
.vfa-tabs button.on b{color:#07130c}
.vfa-slot{border:1px solid var(--line);border-radius:14px;margin:0 0 10px;background:var(--vfa-cell);overflow:hidden}
.vfa-slot.past{background:var(--vfa-cell-empty)}
.vfa-slot.now{box-shadow:0 0 0 2px var(--vfa-now)}
.vfa-slot.closed{background:repeating-linear-gradient(135deg,var(--vfa-cell-empty) 0 8px,var(--vfa-cell) 8px 16px)}
.vfa-slot-h{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--vfa-head)}
.vfa-slot-h .vfa-occ{flex:1;margin:0}
.vfa-slot-t{font-weight:900;color:var(--yellow);font-size:16px;white-space:nowrap}
.vfa-slot-t small{font-size:10px;text-transform:uppercase;background:var(--vfa-now);color:#14110a;border-radius:6px;padding:2px 5px;vertical-align:2px}
.vfa-slot .vfa-add{width:32px;height:28px;margin:0;flex:0 0 auto}
.vfa-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px}
.vfa-person.chip{background:var(--panel2);border-left:0;border-radius:999px;padding:0 4px;margin:0;cursor:pointer;flex-wrap:nowrap}
.vfa-person.chip .vfa-name{padding:6px 8px;font-size:15px;flex:0 1 auto}
.vfa-person.chip .vfa-tag{margin:0 6px 0 0}
.vfa-person.chip::after{display:none}
.vfa-closed-day{margin:6px 0;padding:10px 12px;border-radius:11px;background:var(--vfa-time);color:var(--muted);font-weight:800}
.vfa-dayview .vfa-legend{margin-top:12px}
/* tema claro: contraste dos selos e marcações */
html[data-theme="light"] .vfa-pill,html[data-theme="soft"] .vfa-pill{background:#dcefe3;color:#065f30}
html[data-theme="light"] .vfa-person.hl-green .vfa-name,html[data-theme="soft"] .vfa-person.hl-green .vfa-name{color:#065f30}
html[data-theme="light"] .vfa-person.hl-blue .vfa-name,html[data-theme="soft"] .vfa-person.hl-blue .vfa-name,html[data-theme="light"] .vfa-person.hl-red .vfa-name,html[data-theme="soft"] .vfa-person.hl-red .vfa-name{color:#174ea6}
html[data-theme="light"] .vfa-person.hl-lilac .vfa-name,html[data-theme="soft"] .vfa-person.hl-lilac .vfa-name{color:#5b2aa8}
html[data-theme="light"] .vfa-person.hl-yellow .vfa-name,html[data-theme="soft"] .vfa-person.hl-yellow .vfa-name,html[data-theme="light"] .vfa-person.st-absent .vfa-name,html[data-theme="soft"] .vfa-person.st-absent .vfa-name{color:#7a5300}
html[data-theme="light"] .vfa-person.st-cancelled,html[data-theme="light"] .vfa-person.st-cancelled_late,html[data-theme="soft"] .vfa-person.st-cancelled,html[data-theme="soft"] .vfa-person.st-cancelled_late{background:#fde8e8}
html[data-theme="light"] .vfa-person.st-cancelled .vfa-name,html[data-theme="light"] .vfa-person.st-cancelled_late .vfa-name,html[data-theme="soft"] .vfa-person.st-cancelled .vfa-name,html[data-theme="soft"] .vfa-person.st-cancelled_late .vfa-name{color:#a61b1b}
html[data-theme="light"] .tag-cancelled,html[data-theme="light"] .tag-cancelled_late,html[data-theme="soft"] .tag-cancelled,html[data-theme="soft"] .tag-cancelled_late{background:#f8d0d0;color:#8a1414}
html[data-theme="light"] .tag-makeup,html[data-theme="light"] .tag-extra,html[data-theme="soft"] .tag-makeup,html[data-theme="soft"] .tag-extra{background:#dbe7fb;color:#174ea6}
html[data-theme="light"] .tag-absent,html[data-theme="soft"] .tag-absent{background:#f6ecd0;color:#6b4a00}
html[data-theme="light"] .tag-no_record,html[data-theme="light"] .tag-moved,html[data-theme="light"] .tag-institution_cancelled{background:#eceff1;color:#4a5560}
/* celular: a etiqueta desce para baixo do nome */
@media (max-width:640px){.vfa-person{flex-wrap:wrap}.vfa-person::after{content:"";order:2;flex-basis:100%;height:0}.vfa-tag{order:3;margin:0 0 6px 18px}}
html[data-theme="light"] .vfa-time.now small,html[data-theme="soft"] .vfa-time.now small{color:#fff}
html[data-theme="light"] .vfa-total,html[data-theme="soft"] .vfa-total{background:#dcefe3;color:#065f30}
html[data-theme="light"] .o-one .vfa-total,html[data-theme="soft"] .o-one .vfa-total{background:#f6ecd0;color:#6b4a00}
html[data-theme="light"] .o-full .vfa-total,html[data-theme="soft"] .o-full .vfa-total{background:#fde8e8;color:#8a1414}
html[data-theme="light"] .o-past .vfa-total,html[data-theme="soft"] .o-past .vfa-total{background:#eceff1;color:#4a5560}
html[data-theme="light"] .vfa-person.st-absent,html[data-theme="soft"] .vfa-person.st-absent{background:#fbf3dc}
html[data-theme="light"] .vfa-person.st-makeup,html[data-theme="light"] .vfa-person.st-extra,html[data-theme="soft"] .vfa-person.st-makeup,html[data-theme="soft"] .vfa-person.st-extra{background:#e6efff}
html[data-theme="light"] .vfa-person.st-makeup .vfa-name,html[data-theme="light"] .vfa-person.st-extra .vfa-name,html[data-theme="soft"] .vfa-person.st-makeup .vfa-name,html[data-theme="soft"] .vfa-person.st-extra .vfa-name{color:#174ea6}
html[data-theme="light"] .lg-red,html[data-theme="soft"] .lg-red{background:#fde8e8;color:#a61b1b}
html[data-theme="light"] .lg-yellow,html[data-theme="soft"] .lg-yellow{background:#fbf3dc;color:#7a5300}
html[data-theme="light"] .lg-blue,html[data-theme="soft"] .lg-blue{background:#e6efff;color:#174ea6}
html[data-theme="light"] .lg-lilac,html[data-theme="soft"] .lg-lilac{background:#efe6fb;color:#5b2aa8}
html[data-theme="light"] .lg-green,html[data-theme="soft"] .lg-green{background:#dcefe3;color:#065f30}
html[data-theme="light"] .vfa-slot-t small,html[data-theme="soft"] .vfa-slot-t small{color:#fff}
@media (max-width:640px){.vfa-wrap{max-height:none}}

/* seletor de cor por bolinhas (clique no nome e painel de marcação) */
.vfa-swatches{display:flex;flex-wrap:wrap;gap:6px;padding:4px 6px 8px}
.vfa-menu .vfa-swatches button.vfa-sw,.vfa-sw{display:inline-flex;align-items:center;gap:6px;width:auto;padding:5px 9px 5px 6px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);color:var(--text);font:inherit;font-size:12px;cursor:pointer}
.vfa-sw.on{outline:2px solid var(--text);outline-offset:1px;font-weight:800}
.vfa-sw:hover{filter:brightness(1.15)}
@media (max-width:640px){.vfa-sw{padding:9px 12px 9px 9px;font-size:13px}}
/* chips do celular: marcador também colore o fundo */
.vfa-person.chip.hl-blue,.vfa-person.chip.hl-red{background:#16253d;box-shadow:inset 0 0 0 1px var(--vfa-blue)}
.vfa-person.chip.hl-yellow{background:#332d16;box-shadow:inset 0 0 0 1px var(--vfa-yellow)}
.vfa-person.chip.hl-lilac{background:#2b2038;box-shadow:inset 0 0 0 1px var(--vfa-lilac)}
.vfa-person.chip.hl-green{background:#173523;box-shadow:inset 0 0 0 1px var(--vfa-green)}
html[data-theme="light"] .vfa-person.chip.hl-blue,html[data-theme="soft"] .vfa-person.chip.hl-blue,html[data-theme="light"] .vfa-person.chip.hl-red,html[data-theme="soft"] .vfa-person.chip.hl-red{background:#e1ecff}
html[data-theme="light"] .vfa-person.chip.hl-yellow,html[data-theme="soft"] .vfa-person.chip.hl-yellow{background:#fff1c2}
html[data-theme="light"] .vfa-person.chip.hl-lilac,html[data-theme="soft"] .vfa-person.chip.hl-lilac{background:#eddffc}
html[data-theme="light"] .vfa-person.chip.hl-green,html[data-theme="soft"] .vfa-person.chip.hl-green{background:#d3f0de}

/* histórico: barras de lotação coloridas, mais suaves */
.vfa-occ.hist{opacity:.8}
.o-free .vfa-bar i{background:var(--vfa-green)}

/* Ausência programada (06/10/2026): âmbar escuro, mais fechado que o amarelo de "Faltará" */
.vfa-person.st-on_leave{background:#3b2705;border-left-color:#c07f00}
.vfa-person.st-on_leave .vfa-name{color:#e0a21c;font-weight:800}
.vfa-person.st-on_leave .vfa-ic{color:#e0a21c}
.tag-on_leave{background:#553708;color:#ffc24a}
.lg-leave{background:#3b2705;color:#e0a21c}
.lg-none{background:#1c2a23;color:#9db3a6}
html[data-theme="light"] .lg-none,html[data-theme="soft"] .lg-none{background:#e4ebe6;color:#4b5f54}
.vfa-sw .vfa-lg{flex:none}
html[data-theme="light"] .vfa-person.st-on_leave,html[data-theme="soft"] .vfa-person.st-on_leave{background:#e6c477;border-left-color:#8f5600}
html[data-theme="light"] .vfa-person.st-on_leave .vfa-name,html[data-theme="soft"] .vfa-person.st-on_leave .vfa-name,html[data-theme="light"] .vfa-person.st-on_leave .vfa-ic,html[data-theme="soft"] .vfa-person.st-on_leave .vfa-ic{color:#4f2f00}
html[data-theme="light"] .tag-on_leave,html[data-theme="soft"] .tag-on_leave{background:#e8c981;color:#5a3a00}
html[data-theme="light"] .lg-leave,html[data-theme="soft"] .lg-leave{background:#f2dcaa;color:#6b4300}
.vfa-quick{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 10px}
.vfa-leave-prev{margin:6px 0 4px;padding:9px 11px;border:1px dashed var(--line);border-radius:10px;font-size:13px;line-height:1.45;color:var(--muted)}
.vfa-leave-prev strong{color:var(--text)}

/* Aluno sem cadastro (06/10/2026) */
.vfa-pend-btn{border-color:#c07f00;color:#e0a21c}
.vfa-pend{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow:auto;margin:6px 0 4px}
.vfa-pend-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:10px}
.vfa-pend-row small{color:var(--muted);margin-left:6px}
.vfa-note{margin:2px 0 10px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--line) 40%,transparent);font-size:12.5px;line-height:1.45;color:var(--muted)}
.vfa-match-in{margin:4px 0 10px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;font-size:13px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.vfa-check{display:flex;align-items:center;gap:8px;margin:2px 0 10px;font-size:14px}
.vfa-person.trial .vfa-tag{background:#2b2038;color:#d8bcff}
html[data-theme="light"] .vfa-person.trial .vfa-tag,html[data-theme="soft"] .vfa-person.trial .vfa-tag{background:#efe6fb;color:#5b2aa8}
html[data-theme="light"] .vfa-pend-btn,html[data-theme="soft"] .vfa-pend-btn{color:#7a4f00;border-color:#a86a00}
[data-g][hidden]{display:none!important}

/* Aviso com "Desfazer" depois de desmarcar (06/10/2026) */
.vfa-toast-undo{display:flex;align-items:center;gap:12px}
.vfa-toast-undo .vfa-btn{padding:5px 12px}

/* vínculo sugerido */
.vfa-sug-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:8px 0;padding:9px 12px;border:1px solid #3f6fd1;background:rgba(63,111,209,.14);border-radius:10px;font-size:.9rem}
.vfa-sug{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;margin:6px 0 4px}
.vfa-sug-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:10px}
.vfa-sug-row small{color:var(--muted)}
.vfa-sug-btns{display:flex;gap:6px;flex-shrink:0}
@media(max-width:560px){.vfa-sug-row{flex-direction:column;align-items:stretch}.vfa-sug-btns{justify-content:flex-end}}
html[data-theme="light"] .vfa-sug-bar,html[data-theme="soft"] .vfa-sug-bar{background:rgba(63,111,209,.1);border-color:#7c9ae0}

.vfa-filter{width:100%;box-sizing:border-box;margin:0 0 6px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2,transparent);color:inherit;font:inherit}

.vfa-undo-btn{font-weight:800}
/* menu padrão: mesmas linhas para todo aluno; o que não se aplica fica apagado e explica o motivo */
.vfa-menu{box-sizing:border-box;max-height:calc(100vh - 16px);overflow-y:auto}
.vfa-menu button.off,.vfa-menu button.off:hover{opacity:.5;cursor:not-allowed;background:transparent;color:var(--muted)}
.vfa-menu button.off.warn{color:var(--muted)}
.vfa-menu button.off .hint{font-style:italic}
.vfa-menu .vfa-swatches button.vfa-sw.off:hover{background:var(--panel2);color:var(--text)}
@media (max-width:640px){.vfa-menu button{padding:11px 12px}}
/* menu do aluno com mouse: barra de cores sob o ponteiro + lista de ações ao lado */
.vfa-menu.vfa-menu-pt{position:fixed;left:0;top:0;right:0;bottom:0;min-width:0;max-height:none;overflow:visible;background:none;border:0;box-shadow:none;padding:0;pointer-events:none;border-radius:0}
.vfa-menu-pt .vfa-colorbar{position:absolute;pointer-events:auto;box-sizing:border-box;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px #0008}
.vfa-menu-pt .vfa-colorbar .vfa-swatches{padding:6px 8px;flex-wrap:wrap}
.vfa-menu-pt .vfa-mlist{position:absolute;pointer-events:auto;box-sizing:border-box;min-width:240px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px #0008;padding:6px}
/* 3 pontinhos (abrem as ações) no lugar da alça de arrastar */
.vfa-dots{flex:none;width:22px;height:26px;padding:0;border:0;background:transparent;color:#8da396;font:inherit;font-size:17px;font-weight:800;line-height:1;cursor:pointer;border-radius:6px}
.vfa-dots:hover,.vfa-dots:focus-visible{color:var(--green);background:var(--panel2)}
.vfa-person.chip .vfa-dots{width:18px}
@media (hover:hover){.vfa-dots{opacity:.55;transition:opacity .12s}.vfa-person:hover .vfa-dots,.vfa-dots:focus-visible{opacity:1}}
@media (max-width:640px){.vfa-dots{width:32px;height:36px;font-size:20px}}
/* data da semana clicável + calendário pequeno */
.vfa-datebtn{min-width:210px;text-align:center;font:inherit;font-size:14px;font-weight:800;color:var(--text);background:transparent;border:1px solid transparent;border-radius:8px;padding:7px 10px;cursor:pointer}
.vfa-datebtn:hover,.vfa-datebtn:focus-visible{border-color:var(--line);background:var(--panel2)}
@media (max-width:640px){.vfa-datebtn{min-width:0;flex:1}}
.vfa-cal{position:fixed;z-index:62;width:280px;box-sizing:border-box;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px #0008;padding:10px;color:var(--text)}
.vfa-cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;text-transform:capitalize}
.vfa-cal-h strong{font-size:14px}
.vfa-cal-h button,.vfa-cal-f button{border:1px solid var(--line);background:var(--panel2);color:var(--text);font:inherit;border-radius:8px;padding:4px 10px;cursor:pointer}
.vfa-cal-w,.vfa-cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.vfa-cal-w span{font-size:11px;color:var(--muted);padding:2px 0}
.vfa-cal-d{border:0;background:transparent;color:var(--text);font:inherit;font-size:13px;height:32px;border-radius:8px;cursor:pointer}
.vfa-cal-d:hover{background:var(--panel2);color:var(--green)}
.vfa-cal-d.wk{background:var(--panel2)}
.vfa-cal-d.today{outline:2px solid var(--green);outline-offset:-2px;font-weight:800}
.vfa-cal-d.we{opacity:.4;cursor:not-allowed}
.vfa-cal-d.we:hover{background:transparent;color:var(--text)}
.vfa-cal-d.holiday{box-shadow:inset 0 -3px 0 var(--yellow);font-weight:800;position:relative}
.vfa-cal-d.holiday:hover{background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--text)}
.vfa-cal-hdot{display:block;color:var(--yellow);font-size:15px;line-height:5px;margin-top:-2px}
.vfa-cal-holidays{margin-top:8px;padding-top:7px;border-top:1px solid var(--line);display:grid;gap:3px;max-height:94px;overflow:auto;font-size:10.5px;line-height:1.25;color:var(--muted)}
.vfa-cal-holidays b{color:var(--text);font-variant-numeric:tabular-nums}
.vfa-cal-holidays small{color:var(--muted);font-size:9.5px}
.vfa-cal-f{margin-top:8px;text-align:right}
@media (max-width:640px){.vfa-cal-d{height:40px;font-size:15px}}
