:root{
  /* SETE HUB: preto, dourado e creme (cores da logo) */
  --bg:#F7F3EA; --panel:#FFFDF8; --ink:#1C1B19; --muted:#6B6457;
  --accent:#1C1B19; --gold:#D49B1C; --gold-dark:#8A6210; --gold-soft:#F4E3BA;
  --accent2:#8a9a5b; --accent3:#b5533c; --accent4:#4f7a6b;
  --border:#E6DCC6; --shadow:0 4px 14px rgba(40,30,10,.07);
  --good:#4f7a6b; --bad:#b5533c; --warn:#c08a2e;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Public Sans',sans-serif;line-height:1.55;}
h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:600;color:var(--ink);margin:0 0 .4em;}
a{color:var(--gold-dark);}
.wrap{max-width:1000px;margin:0 auto;padding:28px 20px 80px;}
.narrow{max-width:440px;}
.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:24px 26px;margin-bottom:22px;box-shadow:var(--shadow);}
label{display:block;font-weight:600;font-size:.85rem;color:var(--ink);margin:12px 0 4px;}
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%;font-family:inherit;font-size:.95rem;padding:10px 12px;border:1px solid var(--border);
  border-radius:8px;background:#FFFEFA;color:var(--ink);
}
button, .btn{
  font-family:inherit;cursor:pointer;border:none;border-radius:8px;padding:11px 18px;
  background:var(--accent);color:#fff;font-size:.92rem;font-weight:600;transition:.15s;
  display:inline-block;text-decoration:none;text-align:center;
}
button:hover, .btn:hover{background:#3a3833;}
.btn.gold{background:var(--gold);color:#1C1B19;}
.btn.gold:hover{background:#e4ad2c;}
.btn.ghost{background:transparent;border:1px solid var(--ink);color:var(--ink);}
.btn.ghost:hover{background:var(--accent);color:#fff;}
.btn.block{width:100%;}
.msg{font-size:.85rem;padding:10px 14px;border-radius:8px;margin:10px 0;}
.msg.error{background:#f8dfd8;color:var(--bad);}
.msg.ok{background:#e4efe6;color:var(--good);}
table{width:100%;border-collapse:collapse;font-size:.88rem;}
th,td{border:1px solid var(--border);padding:8px 10px;text-align:left;}
th{background:#F1E8D4;color:var(--ink);}
.tag{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;background:var(--accent2);color:#fff;padding:2px 9px;border-radius:12px;}
.tag.rose{background:var(--accent3);}
.tag.blue{background:var(--accent4);}
.tag.gold{background:var(--warn);}
.muted{color:var(--muted);font-size:.85rem;}
.exercise-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
.exercise-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;}
.exercise-card h3{font-size:1rem;margin:0;}
.exercise-card .pages{font-size:.72rem;color:var(--muted);}
.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;}
.status-dot.done{background:var(--good);}
.status-dot.pending{background:var(--border);}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px;}

.part-head{margin:26px 0 12px;padding-top:14px;border-top:1px solid var(--border, #e5ddd0);}
.part-head:first-child{margin-top:12px;border-top:none;padding-top:0;}
.part-head h3{font-size:1.02rem;margin:0 0 2px;}
.part-head p{margin:0;font-size:.85rem;}
.mentor-alert{background:#eef3ea;border:1px solid #c9d9bd;border-left:4px solid #3C5A48;border-radius:8px;padding:10px 14px;font-size:.9rem;margin:6px 0 4px;}
.mentor-pill{display:inline-block;background:#c0582f;color:#fff!important;border-radius:12px;padding:3px 10px;font-size:.78rem;font-weight:600;text-decoration:none;margin:2px 0 8px;}
