/* Ficha e área do aluno. Herdam fontes do tema; cores próprias da Upflow para funcionar em qualquer tema. */
.upflow { --u-bg:#faf8fb; --u-surface:#ffffff; --u-surface2:#f4f1f5; --u-line:#e2dde4; --u-ink:#1a171c; --u-muted:#655e69; --u-accent:#d81b60; --u-soft:#fde6ef; --u-grad:linear-gradient(90deg,#ff2e7e,#ff8a3d); --u-ok:#1f7a4d; --u-oksoft:#dff2e8; --u-warn:#8a5300; --u-warnsoft:#fbefd9;
	color:var(--u-ink); background:var(--u-bg); padding:16px; border-radius:16px; max-width:680px; margin-inline:auto; box-sizing:border-box; }
@media (prefers-color-scheme:dark){ .upflow.upflow-treino, .upflow.upflow-area { --u-bg:#121114; --u-surface:#1c1a1f; --u-surface2:#26232a; --u-line:#34303a; --u-ink:#f3f0f4; --u-muted:#a59fa9; --u-accent:#ff4f8b; --u-soft:#3a1d29; --u-ok:#5fd09a; --u-oksoft:#173326; --u-warn:#f0b357; --u-warnsoft:#3a2b12; } }
.upflow *, .upflow *::before, .upflow *::after { box-sizing:border-box; }
.upflow-hint { color:var(--u-muted); font-size:14px; }
.upflow-alert { background:var(--u-warnsoft); color:var(--u-warn); border-radius:10px; padding:10px 14px; font-weight:600; margin-bottom:14px; }
.upflow-hp { position:absolute !important; left:-9999px !important; }
.upflow-btn { display:block; width:100%; text-align:center; border:0; cursor:pointer; margin-top:14px; padding:13px; border-radius:12px; background:var(--u-grad); color:#fff; font-weight:700; font-size:16px; }
.upflow-btn:disabled { opacity:.6; cursor:default; }
.upflow button:focus-visible, .upflow a:focus-visible, .upflow input:focus-visible, .upflow select:focus-visible, .upflow textarea:focus-visible { outline:2px solid var(--u-accent); outline-offset:2px; }

/* Ficha */
.upflow-ficha fieldset { border:1px solid var(--u-line); border-radius:14px; padding:16px; margin:0 0 16px; display:grid; gap:12px; }
.upflow-ficha legend { font-weight:800; font-style:italic; text-transform:uppercase; padding:0 6px; letter-spacing:.02em; }
.upflow-ficha label { display:flex; flex-direction:column; gap:4px; font-size:14px; font-weight:600; }
.upflow-ficha input:not([type=checkbox]), .upflow-ficha select, .upflow-ficha textarea { font:inherit; color:var(--u-ink); background:#fff; border:1px solid var(--u-line); border-radius:10px; padding:9px 11px; width:100%; }
.upflow-ficha textarea { min-height:80px; }
.upflow-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.upflow-row .span2 { grid-column:span 2; }
@media (max-width:600px){ .upflow-row{grid-template-columns:1fr;} .upflow-row .span2{grid-column:auto;} }
.upflow-chips { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.upflow-ficha .upflow-chip { display:inline-flex; flex-direction:row; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; border:1px solid var(--u-line); font-weight:600; font-size:13px; cursor:pointer; }
.upflow-ficha .upflow-chip:has(input:checked) { background:var(--u-soft); border-color:var(--u-accent); color:var(--u-accent); }
.upflow-ficha .upflow-block { border-radius:12px; align-items:flex-start; font-weight:500; }
.upflow-ok { text-align:center; padding:30px 16px; }

/* Área do aluno */
.upflow-treino { font-size:16px; line-height:1.5; }
.upflow-logo { font-weight:800; font-style:italic; font-size:24px; line-height:1; background:var(--u-grad); -webkit-background-clip:text; background-clip:text; color:transparent; display:inline-block; }
.upflow-logo small { display:block; font-size:10px; letter-spacing:.32em; margin-top:4px; }
.upflow-t-title { font-weight:800; font-style:italic; text-transform:uppercase; font-size:30px; line-height:1.05; margin:14px 0 4px; }
.upflow-tag { font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; background:var(--u-soft); color:var(--u-accent); }
.upflow-note { background:var(--u-surface); border:1px solid var(--u-line); border-radius:14px; padding:14px 16px; margin-top:14px; }
.upflow-note p { margin:6px 0 0; }
.upflow-note-h { display:flex; gap:10px; align-items:center; }
.upflow-av { width:34px; height:34px; border-radius:50%; background:var(--u-grad); color:#fff; display:grid; place-items:center; font-weight:800; font-style:italic; font-size:14px; flex:none; }
.upflow-tabs { display:flex; gap:8px; overflow-x:auto; margin:18px 0 6px; padding-bottom:4px; }
.upflow-tabs button { flex:1 0 76px; border:1px solid var(--u-line); background:var(--u-surface); color:var(--u-ink); border-radius:12px; padding:8px 6px; cursor:pointer; text-align:center; }
.upflow-tabs button b { display:block; font-style:italic; font-weight:800; font-size:17px; }
.upflow-tabs button span { font-size:12px; color:var(--u-muted); }
.upflow-tabs button[aria-selected="true"] { background:var(--u-grad); color:#fff; border-color:transparent; }
.upflow-tabs button[aria-selected="true"] span { color:#fff; }
.upflow-prog { height:6px; background:var(--u-surface2); border-radius:99px; overflow:hidden; margin:8px 0 4px; }
.upflow-prog i { display:block; height:100%; background:var(--u-grad); }
.upflow-ex { background:var(--u-surface); border:1px solid var(--u-line); border-radius:14px; padding:14px; margin-top:12px; }
.upflow-ex.done { border-color:var(--u-ok); }
.upflow-ex-h { display:flex; justify-content:space-between; gap:10px; font-size:17px; }
.upflow-idx { font-family:ui-monospace,monospace; font-size:12px; color:var(--u-muted); }
.upflow-rx { font-family:ui-monospace,monospace; color:var(--u-accent); font-size:14px; }
.upflow-obs { font-size:14px; margin-top:4px; }
.upflow-adapt { font-size:13px; color:var(--u-warn); background:var(--u-warnsoft); border-radius:8px; padding:5px 9px; margin-top:8px; }
.upflow-video { width:100%; max-width:100%; border-radius:10px; margin-top:10px; background:#000; aspect-ratio:16/9; object-fit:cover; }
.upflow-sets { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; align-items:center; }
.upflow-set { width:42px; height:42px; border-radius:10px; border:1.5px solid var(--u-line); background:transparent; color:var(--u-muted); font-family:ui-monospace,monospace; cursor:pointer; }
.upflow-set[aria-pressed="true"] { background:var(--u-oksoft); border-color:var(--u-ok); color:var(--u-ok); }
.upflow-kg { display:flex; align-items:center; gap:6px; margin-left:auto; font-size:13px; color:var(--u-muted); }
.upflow-kg input { width:68px; font:inherit; color:var(--u-ink); background:transparent; border:1px solid var(--u-line); border-radius:8px; padding:6px 8px; }
.upflow-acts { display:flex; gap:14px; margin-top:10px; flex-wrap:wrap; }
.upflow-acts a, .upflow-acts button { border:0; background:none; padding:0; cursor:pointer; font:inherit; font-size:14px; font-weight:700; color:var(--u-accent); text-decoration:none; }
.upflow-swap { margin-top:8px; border-top:1px dashed var(--u-line); padding-top:8px; font-size:14px; }
.upflow-swap b { color:var(--u-muted); font-size:12px; text-transform:uppercase; letter-spacing:.06em; display:inline-block; width:76px; }
.upflow-end { background:var(--u-surface); border:1px solid var(--u-line); border-radius:14px; padding:16px; margin-top:20px; }
.upflow-end h2 { margin:0 0 6px; font-size:20px; }
.upflow-end label { display:block; margin-top:10px; font-weight:600; font-size:14px; }
.upflow-end input[type=range] { width:100%; accent-color:var(--u-accent); }
.upflow-end textarea { width:100%; min-height:70px; font:inherit; color:var(--u-ink); background:transparent; border:1px solid var(--u-line); border-radius:10px; padding:8px 10px; margin-top:4px; }
.upflow-scale { display:flex; justify-content:space-between; font-size:12px; color:var(--u-muted); }
.upflow-foot { text-align:center; margin-top:20px; font-size:13px; }
.upflow-foot a { color:var(--u-muted); }

/* Área do aluno: cabeçalho, abas e cartões */
.upflow-area { font-size:16px; line-height:1.5; }
.upflow-area h2, .upflow-area h3 { margin:0 0 8px; line-height:1.2; }
.upflow-area h2 { font-size:22px; font-weight:800; font-style:italic; text-transform:uppercase; }
.upflow-area h3 { font-size:16px; text-transform:uppercase; letter-spacing:.04em; }
.upflow-area a { color:var(--u-accent); }
.upflow-alert-ok { background:var(--u-oksoft); color:var(--u-ok); }
.upflow-a-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.upflow-a-user { font-size:14px; color:var(--u-muted); }
.upflow-a-nav { display:flex; gap:6px; overflow-x:auto; margin:16px -4px 4px; padding:0 4px 6px; scrollbar-width:none; }
.upflow-a-nav a { flex:none; text-decoration:none; color:var(--u-ink); border:1px solid var(--u-line); background:var(--u-surface); border-radius:999px; padding:7px 14px; font-weight:700; font-size:14px; }
.upflow-a-nav a[aria-current="page"] { background:var(--u-grad); color:#fff; border-color:transparent; }
.upflow-card { background:var(--u-surface); border:1px solid var(--u-line); border-radius:14px; padding:16px; margin-top:12px; }
.upflow-today { border-color:transparent; background:linear-gradient(var(--u-surface),var(--u-surface)) padding-box, var(--u-grad) border-box; border:1.5px solid transparent; }
.upflow-today-list { list-style:none; padding:0; margin:8px 0 0; }
.upflow-today-list li { display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-top:1px solid var(--u-line); }
.upflow-today-list li span { font-family:ui-monospace,monospace; color:var(--u-accent); font-size:14px; }
.upflow-done { color:var(--u-ok); font-weight:700; margin:12px 0 0; }
a.upflow-btn { text-decoration:none; color:#fff; }
.upflow-btn-ghost, a.upflow-btn-ghost { background:transparent; color:var(--u-accent); border:1.5px solid var(--u-accent); }
.upflow-btn-sm, a.upflow-btn-sm { display:inline-block; width:auto; margin-top:0; padding:8px 14px; font-size:14px; border-radius:10px; flex:none; }
.upflow-row-card { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.upflow-pend, .upflow-pay, .upflow-hist, .upflow-carga { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--u-line); flex-wrap:wrap; }
.upflow-card h3 + .upflow-pend, .upflow-card h3 + .upflow-hist, .upflow-card h3 + .upflow-carga, .upflow-card > .upflow-pay:first-child { border-top:0; }
.upflow-pend.bad span { color:#c62828; font-weight:700; }
@media (prefers-color-scheme:dark){ .upflow-pend.bad span { color:#ff7a7a; } }
.upflow-pay-r { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.upflow-st { font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; background:var(--u-warnsoft); color:var(--u-warn); }
.upflow-st.pago { background:var(--u-oksoft); color:var(--u-ok); }
.upflow-st.atrasado { background:#fde2e2; color:#b71c1c; }
.upflow-bar { width:90px; height:6px; background:var(--u-surface2); border-radius:99px; overflow:hidden; }
.upflow-bar i { display:block; height:100%; background:var(--u-grad); }
.upflow-mono { font-family:ui-monospace,monospace; font-size:14px; }
.upflow-up { color:var(--u-ok); }
.upflow-dl { display:grid; grid-template-columns:auto 1fr; gap:6px 14px; margin:0; }
.upflow-dl dt { color:var(--u-muted); font-size:14px; }
.upflow-dl dd { margin:0; font-weight:600; }
.upflow-area input:not([type=checkbox]):not([type=file]):not([type=range]) { font:inherit; color:var(--u-ink); background:var(--u-bg); border:1px solid var(--u-line); border-radius:10px; padding:9px 11px; width:100%; }
.upflow-inline-form { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.upflow-inline-form label { width:100%; font-size:14px; font-weight:600; }
.upflow-inline-form input { flex:1 1 140px; width:auto !important; }
.upflow-stack { display:grid; gap:6px; }
.upflow-stack label { font-size:14px; font-weight:600; }
.upflow-stack .upflow-btn-sm { justify-self:start; margin-top:6px; }
.upflow-area input[type=file] { margin:6px 0 10px; max-width:100%; }
.upflow-docs { margin:12px 0 0; padding-left:18px; font-size:14px; color:var(--u-muted); }
/* Login */
.upflow-login { max-width:420px; text-align:left; }
.upflow-login form p { margin:0 0 12px; }
.upflow-login label { display:block; font-weight:600; font-size:14px; margin-bottom:4px; }
.upflow-login .login-remember label { display:flex; gap:8px; align-items:center; font-weight:500; }
.upflow-login #wp-submit { width:100%; border:0; cursor:pointer; padding:13px; border-radius:12px; background:var(--u-grad); color:#fff; font-weight:700; font-size:16px; }
